我正在撰寫這個程式,它作業正常,我把它留了一段時間,代碼停止作業。
請幫助我完成此功能;這是代碼:
acceptables = [1, 2, 3, 4, 5, 6, 10]
try :
toss = input("Toss a number from 1 to 6 (10 included): ")
except ValueError:
print("Invalid")
if toss != acceptables:
print("Illegal Numbers!")
time.sleep(2)
exit()
else:
pass
所以應該發生的是,用戶將在toss中輸入一個數字,它會檢查該數字是否來自可接受的,如果不是,它將退出程式。
但是現在,我輸入了可接受的號碼,但它仍然顯示“非法號碼”并退出程式。
這是一個新的 python3 更新還是我錯過了什么?請幫忙
uj5u.com熱心網友回復:
你有兩個問題:
toss = input(...)回傳一個字串,但您想將該值與ints 進行比較。嘗試型別轉換:toss = int(toss)將您的strfrom轉換"1"為1.您正在檢查數字是否在串列中,使用
if toss != acceptables:which will always beFalse因為 aint(或str此刻)永遠不會等于 alist。您想檢查是否toss在串列中acceptables。試試這個:if toss in acceptables:
uj5u.com熱心網友回復:
您必須強制toss轉換為int,因為 python 默認string采用input
uj5u.com熱心網友回復:
有幾個問題。首先,這一行:
toss = input("Toss a number from 1 to 6 (10 included): ")
將存盤您提交的任何內容的字串值toss。您可能希望這一行閱讀:
toss = int(input("Toss a number from 1 to 6 (10 included): "))
以確保ValueError在用戶鍵入非整數字串的情況下獲得整數或 a。
其次,這一行:
if toss != acceptables:
正在檢查是否toss,什么是 int,不等于一個串列,本質上是這樣做的:if 5 != [1, 2, 3, 4, 5, 6, 10]。相反,您可能希望這樣閱讀:
if toss not in acceptables:
檢查此號碼是否在您的可接受號碼串列中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/435955.html
標籤:Python python-3.x if 语句
