【发布时间】:2016-05-07 00:19:17
【问题描述】:
我熟悉 Python 短路(AND、OR、NOT),但这对我来说似乎很奇怪。
这里是:
下面这行 Python 代码做了什么?
day = input("What day do you want [Tuesday]: ") or "Tuesday"
我不确定它从用户那里得到了什么以及它有什么用处。
【问题讨论】:
我熟悉 Python 短路(AND、OR、NOT),但这对我来说似乎很奇怪。
这里是:
下面这行 Python 代码做了什么?
day = input("What day do you want [Tuesday]: ") or "Tuesday"
我不确定它从用户那里得到了什么以及它有什么用处。
【问题讨论】:
在 Python 3 中,这会将 day 设置为用户键入的内容,除非用户只是按 Enter 键。在这种情况下,input 将返回空字符串,其真值为 false,因此它将使用 "Tuesday" 代替。你可以在这里看到:
>>> "" or "Tuesday"
'Tuesday'
如果用户输入非空,那么它的真值为真,它会被用作or表达式的结果:
>>> "Monday" or "Tuesday"
'Monday'
【讨论】:
如果input() 调用的结果为假,在这种情况下为空字符串,day 将接收'Tuesday' 作为默认值。如果用户在按下 Enter 之前输入了任何字符,day 将被设置为他们输入的字符串。
【讨论】: