如果number變數是整數,則等于零的輸入應變為“無”,任何其他值應保持原樣。下面的代碼有效,但出于學習目的,我想看看如何以不同的方式實作?
while True:
try:
number = int(input('Type an integer: '))
if type(number) == int: # If the value is an integer, it proceeds.
if number == 0: # Here is another 'if' in case the value is zero which has to turn to the 'None' value
number = None
break
else: # For any other case it should just keep the value from the input above
break
except ValueError:
print("Type an integer")
print(number)
uj5u.com熱心網友回復:
嘗試
number = number if number != 0 else None
uj5u.com熱心網友回復:
無需檢查 ,type(number) == int因為您已經將其傳遞給int,而沒有引發ValueError. 如果到達這行代碼,則此時它必須已經是 int 了。
打破邏輯通常很難遵循。IMO 這種邏輯將更適合您所在的方法return,從而更清楚回圈的最終結果。
錯誤文本的提示令人困惑,您應該評論它是不正確的。
回傳邏輯可以使用 if/else 運算式來減少代碼。
def ask_for_int():
while True:
try:
number = int(input('Type an integer: '))
return None if number == 0 else number
except ValueError:
print("Invalid input. Try again")
print(ask_for_int())
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/373030.html
