[英]Python Calculator and understanding input errors:
我在 python 中創建了一個小型計算器,它可以識別輸入錯誤,盡管它只運行一次。 我想知道是否有更好的方法來使用 While 循環或 If-else 語句,而不是一直使用 try-catch。 由於 try-except 只應在特殊情況下使用 -
我想要的是當用戶輸入不正確的數字時,即字符串。 它出錯並再次詢問,用戶再次輸入正確的數字並且它可以工作。 但是使用 while 循環或 If 語句而不是 try-except
下面的程序運行良好,雖然它只運行一次,你能不能讓它在它完成后繼續循環。 我可以稍后添加其他運算符...
謝謝,
answer = True
while answer:
try:
num1 = int(input ("Enter first number: "))
break
except:
pass
print ("Please try again: ")
operator = input ("")
num2 = int (input ("Enter second number: "))
if (operator == '+'):
print (num1 + num2)
answer = False
1.使用try/except
是正確的。 無效的用戶輸入是“例外情況”。
您的代碼已經一遍又一遍地要求用戶輸入,直到他們提供有效的輸入(對於第一個數字)。 這是對的。 您不需要answer
變量,因為無論如何它都沒有被使用。 您可以只使用while True
:
while True:
try:
num1 = int(input ("Enter first number: "))
break
except:
print ("Please try again: ") # You don't need 'pass'
您可以為每個輸入執行此操作。 此外,您可以將該代碼放在 function (例如read_number()
)中,並為兩個數字輸入調用它。
2.要讓程序在結束后重新啟動,請將整個內容放在一個while True
循環中:
while True:
# Your program here
為了使事情更有條理,您可以將計算器代碼放在 function 中,然后在while True
循環中調用 function:
def calculator():
while True:
try:
num1 = int(input ("Enter first number: "))
break
except:
print ("Please try again: ")
operator = input ("")
while True:
try:
num2 = int(input ("Enter second number: "))
break
except:
print ("Please try again: ")
if (operator == '+'):
print (num1 + num2)
# main program
while True:
calculator()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.