簡體   English   中英

Python 計算器和理解輸入錯誤:

[英]Python Calculator and understanding input errors:

我在 python 中創建了一個小型計算器,它可以識別輸入錯誤,盡管它只運行一次。 我想知道是否有更好的方法來使用 While 循環或 If-else 語句,而不是一直使用 try-catch。 由於 try-except 只應在特殊情況下使用 -

  1. 我想要的是當用戶輸入不正確的數字時,即字符串。 它出錯並再次詢問,用戶再次輸入正確的數字並且它可以工作。 但是使用 while 循環或 If 語句而不是 try-except

  2. 下面的程序運行良好,雖然它只運行一次,你能不能讓它在它完成后繼續循環。 我可以稍后添加其他運算符...

謝謝,

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM