这是一个简单的任务,但我仍然想压缩它来学习新的方法。
假设我想要一个值(例如:一个数字),但是他们输入了一个无效的输入("),然后我可以分配一个默认值(=5),如下所示:
-> number = int(input("Enter Number: ") or 5)
在这个方法中,如果用户输入-1,代码仍然有效,number = -1。但是,如果要检查值是否大于2呢?
-> number = int( int("Enter Number: ") >2 or 5)
-> Enter Number: 10
-> print(number)
-> 1
分配并打印逻辑值10>2 = 1
是否有办法比较值并相应地赋值在一个语句
我不相信您可以在一行上完成此操作,因此您需要编写额外的行,或者(可能是更好的选择)为此编写一个辅助函数。您可能还应该检查其他无效输入。例子:
def get_value_or_default(minimum: int = 2, default: int = 5) -> int:
try:
number = int(input("Enter Number: "))
except ValueError:
return default
return number if number >= minimum else default
与输出:
>>> get_value_or_default()
Enter Number: 1
5
>>> get_value_or_default()
Enter Number: 2
2
>>> get_value_or_default()
Enter Number: 3
3
>>> get_value_or_default()
Enter Number: oops
5