满足条件时处理两种情况?
Dealing with two cases when a condition is met?
如果 number
变量是整数,则等于零的输入应变为 'None',任何其他值应保持原样。下面的代码有效,但出于学习目的,我想看看如何以不同的方式实现它?
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)
尝试
number = number if number != 0 else None
因此完整的循环可能如下所示:
while True:
try:
number = int(input('Type an integer: '))
print(number if number != 0 else None)
except ValueError:
print("Type an integer")
无需检查 type(number) == int
,因为您已将其传递给 int
,它没有引发 ValueError
。如果到这行代码,此时肯定已经是int了。
打破逻辑通常很难遵循。 IMO 这个逻辑更适合你 return
它的方法,使循环的最终结果更清楚。
文字错误的提示令人困惑,您应该评论它是不正确的。
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())
如果 number
变量是整数,则等于零的输入应变为 'None',任何其他值应保持原样。下面的代码有效,但出于学习目的,我想看看如何以不同的方式实现它?
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)
尝试
number = number if number != 0 else None
因此完整的循环可能如下所示:
while True:
try:
number = int(input('Type an integer: '))
print(number if number != 0 else None)
except ValueError:
print("Type an integer")
无需检查 type(number) == int
,因为您已将其传递给 int
,它没有引发 ValueError
。如果到这行代码,此时肯定已经是int了。
打破逻辑通常很难遵循。 IMO 这个逻辑更适合你 return
它的方法,使循环的最终结果更清楚。
文字错误的提示令人困惑,您应该评论它是不正确的。
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())