2010-04-18 13 views
9

मैं किसी सूची में ऑब्जेक्ट जोड़ने के लिए थोड़ी देर लूप का उपयोग करने का प्रयास कर रहा हूं।किसी सूची में ऑब्जेक्ट जोड़ने के लिए लूप का उपयोग करना (पायथन)

यहाँ मूल रूप से मुझे क्या करना चाहते हैं:

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

मैं वस्तु सूची में जोड़ा प्राप्त कर सकते हैं, लेकिन मैं कैसे पाश में सूची में एक से अधिक ऑब्जेक्ट को जोड़ने के लिए पर अटक कर रहा हूँ।

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

किसी भी मदद की बहुत सराहना की जाएगी:

यहाँ कोड मैं अब तक है!

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

पाश इतना है कि यह केवल एक बार निष्पादित किया जाता है इसके बाद के संस्करण प्रारंभ चलती का प्रयास करें:

+0

सभी चर नामित अनुमान पसंद नाम दिया जाना चाहिए मेरी गलती – Will

+0

आप अपने प्रश्न संपादित कर सकते हैं;) –

+0

haha ​​मैं करने की कोशिश की, लेकिन मैं मिल गया LOLcat – Will

उत्तर

24

समस्या हो कि आप प्रत्येक चरण में एक खाली सूची सूची reinitializing कर रहे हैं प्रकट होता है।

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

तो लूप के बाहर मुझे एक = [] और फिर लूप के अंदर मुझे a.append होना चाहिए (रों)? – Will

+0

@ विल: शायद यह एक अच्छी शुरुआत है, हालांकि आपके कोड के साथ कुछ अन्य समस्याएं हैं। यदि आप 0 या 1 के अलावा कोई अन्य नंबर दर्ज करते हैं तो आप उसी छात्र को सूची में फिर से जोड़ देंगे। क्या यह वास्तव में आप चाहते हैं? –

+0

हाहा और उम नहीं .... मैं लूप के माध्यम से जाने की क्षमता चाहता हूं और प्रत्येक बार जब मैं 1 चुनता हूं तो एक अलग छात्र जोड़ता हूं ... इसलिए मैं एक बार गुजरता हूं, एक छात्र जोड़ता हूं, फिर से 1 चुनता हूं और एक अलग छात्र जोड़ता हूं ... आदि ... आदि इसलिए हर बार जब मैं जाता हूं तो मैं एक diff छात्र – Will

0

ऑटो incrementing एक पाश में सूचकांक:

myArr[(len(myArr)+1)]={"key":"val"} 
संबंधित मुद्दे