[英]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.