it-swarm.com.de

Verwenden einer Schleife zum Hinzufügen von Objekten zu einer Liste (Python)

Ich versuche, eine while-Schleife zu verwenden, um Objekte zu einer Liste hinzuzufügen.

Grundsätzlich möchte ich Folgendes tun:

class x:
     pass

choice = raw_input(pick what you want to do)

while(choice!=0):
    if(choice==1):
       Enter in info for the class:
       append object to list (A)
    if(choice==2):
       print out length of list(A)
    if(choice==0):
       break
    ((((other options))))

Ich kann das Objekt der Liste hinzufügen lassen, aber ich bin fest damit beschäftigt, der Liste in der Schleife mehrere Objekte hinzuzufügen.

Hier ist der Code, den ich bis jetzt habe:

print "Welcome to the Student Management Program"

class Student:  
    def __init__ (self, name, age, gender, favclass):  
         self.name   = name  
         self.age    = age  
         self.gender = gender  
         self.fac = favclass  

choice = int(raw_input("Make a Choice: " ))

while (choice !=0):
    if (choice==1):  
        print("STUDENT")  
        namer = raw_input("Enter Name: ")  
        ager = raw_input("Enter Age: ")  
        sexer = raw_input("Enter Sex: ")  
        faver = raw_input("Enter Fav: ")      

    Elif(choice==2):
        print "TESTING LINE"
    Elif(choice==3):
        print(len(a))

    guess=int(raw_input("Make a Choice: "))

    s = Student(namer, ager, sexer, faver)
    a =[];
    a.append(s)

raw_input("Press enter to exit")

Jede Hilfe wäre sehr dankbar!

11
Will

Das Problem scheint zu sein, dass Sie die Liste in jeder Iteration zu einer leeren Liste neu initialisieren:

while choice != 0:
    ...
    a = []
    a.append(s)

Verschieben Sie die Initialisierung über die Schleife, sodass sie nur einmal ausgeführt wird.

a = []
while choice != 0:
    ...
    a.append(s)
25
Mark Byers

Index in einer Schleife automatisch inkrementieren:

myArr[(len(myArr)+1)]={"key":"val"}
0
glyph