2013-01-22 101 views
-1

据我所知,在我的循环中输入了一个尾部值来结束程序。我的课程的目的是输入一个孩子的名字,然后输入他们的成绩。当你完成一个孩子时,你输入-1来结束程序的那部分。在你完成一个孩子后,程序应该要求你输入另一个孩子的名字。预告片值“完成”有效,但当我输入一个随机的孩子名称时,它会提示名称未定义,并且不会运行程序的其余部分。帮帮我?有效使用while循环

#By: Christian Braverman 01/02/13 

#Variables 

TotalNum_A = 0 
TotalNum_B = 0 
TotalNum_C = 0 
TotalNum_D = 0 
TotalNum_F = 0 
studentname = 0 
Done = 0 
grade = 0 

#Loop 
studentname = input("Enter student name ") 
while studentname != Done :      
    studentname = input ("Enter student name ") 
    grade = input("Enter a Grade ") 
    while grade != -1: 
     grade = input("Enter a Grade: ") 

     if grade >=90 : 
      print "A!" 
      TotalNum_A = TotalNum_A + 1 


     if grade >=80 and grade <90: 
      print "B!" 
      TotalNum_B = TotalNum_B + 1 


     if grade >=70 and grade <80: 
      print "C" 
      TotalNum_C = TotalNum_C + 1 


     if grade >=60 and grade <70: 
      print "D" 
      TotalNum_D = TotalNum_D + 1 


     if grade <=59: 
      print "F :(" 
      TotalNum_F = TotalNum_F + 1 
    grade = input("Enter a Grade: ") 

#Printing Totals 

print ("You received " + str(TotalNum_A) + " A's.") 

print ("You recieved " + str(TotalNum_B) + " B's.") 

print ("You recieved " + str(TotalNum_C) + " C's.") 

print ("You recieved " + str(TotalNum_D) + " D's.") 

print ("You recieved " + str(TotalNum_F) + " F's.") 

回答

0

您应该使用raw_input而不是input - 这样,它会采取而不需要输入一个字符串是一个已经存在的变量。然后更换

while studentname != Done: 

while studentname != "Done":      

需要注意的是,截至目前,没有理由甚至对学生的姓名会问,既然截至目前你的程序不与他们做任何事。

+0

我知道名字是无用的,但这是为我的计算机科学类,我必须在那里的名称。虽然谢谢! –

+0

我是否用raw_input语句替换了所有的输入语句? –

+0

@ChristianBraverman:不是'grade = input(“输入等级:”)'ones-,或者你可以用'int(input(“输入等级:”))'替换它们'。这个想法是,'input'(在Python 2.X中,不是Python 3)有效地读取用户的Python代码(如数字或变量名),而'raw_input'正在读取一个字符串。 –