Python输入基于短路

时间:2016-05-07 00:19:18

标签: python logic

我熟悉Python短路(AND,OR,NOT),但这对我来说似乎很奇怪。

这是:

以下Python代码行有什么作用?

day = input("What day do you want [Tuesday]: ") or "Tuesday"

我不确定它从用户那里获得了什么以及它是如何有用的。

2 个答案:

答案 0 :(得分:2)

在Python 3中,这会将day设置为用户输入的内容,除非用户只是输入。在这种情况下,input将返回空字符串,其真值为false,因此它将使用"Tuesday"。你可以在这里看到:

>>> "" or "Tuesday"
'Tuesday'

如果用户输入非空,则其真值将为true,并将用作or表达式的结果:

>>> "Monday" or "Tuesday"
'Monday'

答案 1 :(得分:0)

如果input()调用的结果为false,在这种情况下为空字符串,day将收到'Tuesday'作为默认值。如果用户在按 Enter 之前输入任何字符,day将被设置为他们输入的字符串。