我嘗試過只使用input(), 但輸入選項1,2,3的時候, 它不認為輸入的是數字, 而是當作字符串。
看到這個描述我的第一個感覺是你應該是初學Python,學習Python一段時間的人應該都能理解,input()不管你在裡面輸入的是 中文 英文 日文 阿拉伯數字 甚至火星文,輸進去的東西都會變成"字串",你的問題應該問作"如果輸入字串裡面包含了非數字字元時,用int()字串會報錯,要如何處理...之類的",底下舉個例,參考星空大的建議用re.search判斷字串內容是否為純數字("0"~"9"),若是則int(input_val),若否則為"Not Number"。
import re
print((lambda x:int(x) if re.search("^[0-9]+$",x)!=None else "Not Number!")(input("Option: 1)Display 2)Add 3)Exit\n ")))
個人不太建議一開始學習就用上面的這種寫法,單行做很多事很酷沒錯,但是也很容易誤導新手,解決同樣的問題用結構化程式的寫法如下提供您參考:
import re
choice=input("Option: 1)Display 2)Add 3)Exit\n ")
if re.search("^[0-9]+$",choice)!=None:
choice=int(choice)
else:
choice="Not Number!"
print(choice)
結構化程式寫法的優點就是看一眼就知道它在做啥。