まず、値が範囲内にあるかどうかを確認する方法を知っている必要があります。簡単だ:
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 +」などの整数ではないものを入力した場合でも、プログラムは「エラーで終了する」ことになります。少しトリッキーな処理。整数の有効な表現ではない文字列を指定すると、関数は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