valid_Total = 120
def get_num(n):
inp = -1
while input not in range(121):
try:
inp = int(input(f"Enter your total {n} credits : "))
if inp not in range(121):
print("Out of range")
else:
pass
except ValueError:
print("Please enter a integer")
return inp
while True:
x = get_num("PASS")
y = get_num("DEFER")
z = get_num("FAIL")
if x y z != valid_Total:
print("Incorrect Total")
else:
break
如何修復例外處理,以便當我輸入除整數以外的任何內容時,它會要求再次將值輸入到同一個變數中,而不將其輸入到下一個變數中?
uj5u.com熱心網友回復:
您可以使用“無限”回圈簡化此操作
def get_num(n):
while True:
inp = input(f"Enter your total {n} credits : ")
try:
inp = int(inp)
if inp in range(121):
return inp
print("Out of range")
except ValueError:
print("Please enter an integer")
退出回圈的唯一方法是return通過避免 aValueError并成功通過范圍檢查來到達陳述句。
如果不想在try陳述句中嵌套范圍檢查(合理的請求),可以使用continue陳述句在發生例外時跳過范圍檢查。
def get_num(n):
while True:
inp = input(f"Enter your total {n} credits : ")
try:
inp = int(inp)
except ValueError:
print("Please enter an integer")
continue
if inp in range(121):
return inp
print("Out of range")
您還可以使用附加continue陳述句反轉范圍檢查。
def get_num(n):
while True:
inp = input(f"Enter your total {n} credits : ")
try:
inp = int(inp)
except ValueError:
print("Please enter an integer")
continue
if inp not in range(121):
print("Out of range")
continue
return inp
uj5u.com熱心網友回復:
只需continue在您的except條款末尾添加:
except ValueError:
print("Please enter a integer")
continue
它會回到頂部 while
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/372449.html
上一篇:回圈遍歷串列以提取特定模式
