我是 Python 的新手。我有以下 if 語句:if(userGuess == "0" or userGuess == "1" or userGuess == "2" or userGuess == "3" or userGuess == "4" or userGuess == "5" or userGuess == "6" or userGuess == "7" or userGuess == "8" or userGuess == "9"): print("\n>>>error: cannot use integers\n") continue基本上,如果用戶輸入任何數字,循環將重置。有什么辦法可以寫出這個語句來讓它更高效一點嗎?(即更少的代碼和更清潔)
3 回答

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
possibilities = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
if userGuess in possibilities:
#do something
或者,如果您愿意與整數進行比較,則可以執行以下操作:
if userGuess < 10:
#do something

郎朗坤
TA貢獻1921條經驗 獲得超9個贊
你可以這樣做:
nums = [str(i) for i in range(10)] # gets a list of nums from 0 to 9
if userGuess in nums:
print("Num found")

慕哥6287543
TA貢獻1831條經驗 獲得超10個贊
假設userGuess
是一個字符串并且可以不是單個字符,
if(any(c.isdigit() for c in userGuess): ....
如果猜測應該正好是一個字符,你可以
if(len(userGuess) != 1 or userGuess in "0123456789"): ....
要么
if(len(userGuess) != or userGuess.isdigit()): ...
想一想,這isdigit
是更好的方法。假設用戶輸入了孟加拉語號碼?
??.isdigit()
是True
。
添加回答
舉報
0/150
提交
取消