2010-04-18 33 views
9

Tôi đang cố sử dụng vòng lặp while để thêm đối tượng vào danh sách.Sử dụng vòng lặp để thêm đối tượng vào danh sách (trăn)

Đây là cơ bản những gì tôi muốn làm:

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)))) 

tôi có thể nhận các đối tượng được bổ sung vào danh sách, nhưng tôi đang bị mắc kẹt tại thế nào để thêm nhiều đối tượng vào danh sách trong vòng lặp.

Dưới đây là đoạn code tôi có cho đến nay:

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") 

Bất kỳ trợ giúp sẽ được đánh giá cao!

+0

tất cả các biến có tên là đoán nên được đặt tên là sự lựa chọn sai lầm của tôi – Will

+0

Bạn có thể chỉnh sửa câu hỏi của bạn;) –

+0

haha ​​tôi đã cố gắng để nhưng tôi đã nhận trang thông báo lỗi chết tiệt với LOLcat – Will

Trả lời

24

Vấn đề dường như là bạn đang reinitializing danh sách để một danh sách trống trong mỗi lần lặp:

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

Hãy thử di chuyển khởi trên vòng lặp để nó được thực hiện một lần duy nhất.

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

vì vậy bên ngoài vòng lặp tôi cần có a = [] và sau đó bên trong vòng lặp, tôi phải có a.append (S)? – Will

+0

@Will: Đó có thể là một khởi đầu tốt, mặc dù có một số vấn đề khác với mã của bạn. Nếu bạn nhập một số khác 0 hoặc 1, bạn sẽ thêm lại cùng một học sinh vào danh sách. Đây thực sự là những gì bạn muốn? –

+0

haha ​​và um không .... tôi muốn khả năng đi qua vòng lặp và thêm một sinh viên khác mỗi khi tôi chọn 1 ... vì vậy tôi sẽ đi qua một lần, thêm một sinh viên, chọn 1 lần nữa và thêm một sinh viên khác ... vv ... vn vì vậy mỗi khi tôi đi qua tôi có thể thêm một sinh viên khác – Will

0

Auto-incrementing chỉ số trong một vòng lặp:

myArr[(len(myArr)+1)]={"key":"val"} 
Các vấn đề liên quan