簡體   English   中英

如何在 Python 中使用不同的格式條件退出 while True 循環?

[英]How to exit a while True loop using a different format condition in Python?

我在網上找到了以下代碼示例,它通過使用特定的 integer 退出了while True循環:

while True:
i = int(input('Please enter an integer (or 0 to exit):\n'))
if i == 0:
    print("Exiting the Program")
    break
print(f'{i} square is {i ** 2}')

我想知道如何使用str輸入(如“exit”)而不是特定的 int(本例中為 0)退出循環。 我通過為每種類型創建一個輸入來解決問題:

while True:
    i_str = input('Please enter an integer ( or "exit" to exit): ')
    if i_str == "exit":
        print("Exiting the Program")
        break
    i_int = int(input('Please enter an integer (or "exit" to exit): '))
    print(f'{i_int} square is {i_int ** 2}')

...但是每隔一次嘗試就會打印出 smth,並在錯誤嘗試計算“退出”時拋出 ValueError 。

我基本上無法弄清楚如何正確實現這一點,我也不確定我什至應該使用兩種不同的輸入格式來解決這個問題。

如果不exit ,則可以使用if-else並轉換為int

while True:
    i_str = input('Please enter an integer ( or "exit" to exit): ')
    if i_str == "exit":
        print("Exiting the Program")
        break
    else:
        i_int = int(i_str)
        print(f'{i_int} square is {i_int ** 2}')

您可以先將其轉換為字符串並對其進行驗證,然后將其轉換為 int,然后將其全部放入 try-catch 以捕獲任何異常,您可以使用下面的示例

while True:
try:
    i = str(input('Please enter an integer (or 0 to exit):\n'))
    if "exit" in i:
        print("Exiting the Program")
        break
    else:
        i = int(i)
    if i == 0:
        print("Exiting the Program")
        break
    print(f'{i} square is {i ** 2}')
except:
    print("Exiting the Program")

您可以只使用try-except ,如果程序無法將輸入的數字轉換為 integer,則會引發異常。

while True:
    try:
        i = int(input('Please enter an integer ( or "exit" to exit): '))
        print(f'{i} square is {i ** 2}')
    except:
        print("Exiting the Program")
        break

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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