首先,你必须知道如何检查一个值是否在一个范围内。这很容易:
if n in range(0, 101):
几乎是英文的直接翻译。(这只是 Python 3.0 或更高版本的一个很好的解决方案,但您显然使用的是 Python 3。)
接下来,如果你想让他们继续尝试直到他们输入有效的内容,只需循环执行:
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)
正如 fp 指出的那样,如果他们键入不是整数的东西,例如“A+”,程序仍然会“以错误结束”。处理有点棘手。如果您给它一个不是整数的有效表示形式的字符串,该int
函数将引发 a 。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