首先,你必须知道如何检查一个值是否在一个范围内。很简单:if n in range(0, 101):
几乎是英语的直接翻译。(这只是Python3.0或更高版本的一个很好的解决方案,但显然您正在使用Python3。)
下一步,如果你想让他们继续尝试,直到他们输入了有效的内容,只需循环进行:for i in range(total):
while True:
n = int(input("Enter a test score >> "))
if n in range(0, 101):
break
myList.append(n)
再一次,几乎是英语的直接翻译。
但如果你把它分解成一个单独的函数,可能会清楚得多:def getTestScore():
while True:
n = int(input("Enter a test score >> "))
if n in range(0, 101):
return n
for i in range(total):
n = getTestScore()
myList.append(n)
正如f p所指出的,如果他们输入的不是整数,比如“a+”,程序仍然会“以错误结束”。处理起来有点棘手。如果给int函数一个不是有效整数表示的字符串,它将引发一个ValueError。所以:def getTestScore():
while True:
try:
n = int(input("Enter a test score >> "))
except ValueError:
pass
else:
if n in range(0, 101):
return n