2015-10-20 122 views
1

我有問題讓我的代碼不接受高於最大值的數字。當我放置高於101的東西時,它只會說「太大,再試一次」,但它不會讓我再試一次。它使我走出了循環,我必須重新啓動該功能以再次嘗試。當輸入一個小於0的數字時,它可以很好地工作。列表和While循環

def addGrade(grade_list): 
    myGrades = -1 
    while 0 > myGrades < 101: 
     myGrades = int(input('Enter a number between 0 and 100: ')) 
     if myGrades < 0: 
      print('Too small, try again') 
     if myGrades > 101: 
      print('Too big, try again') 
    grade_list.append(myGrades) 
    print(grade_list) 
    return myGrades 
+1

請參閱[此鏈接](http://stackoverflow.com/help/formatting)瞭解如何格式化您的帖子,包括您的代碼。 – Erik

回答

1

問題在於你的while循環中:

而0> myGrades < 101:

必須是:

while 0 < myGrades and myGrades < 101: 

這裏的工作你的代碼,如果你輸入1337就得到出功能

def addGrade(grade_list): 
    myGrades = -1 
    while True: 
     myGrades = int(input('Enter a number between 0 and 100: ')) 
     if myGrades == 1337: 
      break 
     if myGrades < 0: 
      print('Too small, try again') 
      continue 
     if myGrades > 101: 
      print('Too big, try again') 
      continue 
     grade_list.append(myGrades) 
     print(grade_list) 
    return myGrades 
0

是的,正如已經說過的那樣,條件是不正確的。這是我會寫的方式:

my_grade = 0 
while not (0 < my_grade < 101): 
    my_grade = int(input('Enter number: ')) 
print 'Ok this is a good value {}'.format(my_grade)