3 回答

TA貢獻1836條經驗 獲得超4個贊
在獲得有效(或無效)輸入之前,您已經知道如何循環。要檢測整數,您可以嘗試將輸入轉換為int
try:
value = int(fqas_no)
except:
# loop around to try again
更好的是,使用內置方法
if fqas_no.isdigit():

TA貢獻1810條經驗 獲得超4個贊
查看有關異常處理的文檔。您需要包含一條try聲明:
try:
if 50 <= fqas_no :
#etc
except ValueError:
print("Numbers only please")
這兩個在一起。只是except不正確的語法。
旁注,您應該調用lower()輸入本身。這樣,您的代碼將更加簡潔:
while fqas not in ["yes", "no"]:
fqas = input(">>> (yes/no): ").lower()
if fqas == "yes":
#etc

TA貢獻1921條經驗 獲得超9個贊
沒有嘗試的除外部分似乎是您的問題。
base_pay = 1000
fqas = None
while fqas not in ("yes", "no", "Yes", "No"):
fqas = input(">>> [yes/no]: ")
if fqas.lower() == "yes":
print("\nAwesome! Current pay: $", base_pay + 50)
elif fqas.lower() == "no":
try:
fqas_no = int(input("if not, how much do you think she deserve? \n>>>"))
except ValueError:
print('Numbers only please')
break
if 50 <= fqas_no:
print("AMAZINGGGG! current pay: $", base_pay + fqas_no)
continue
elif fqas_no <= 50:
print("That's cool, current pay: $", base_pay + fqas_no)
continue
這應該可以解決您的問題。
添加回答
舉報