【问题标题】:Python input based on short circuit基于短路的Python输入
【发布时间】:2016-05-07 00:19:17
【问题描述】:

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

这里是:

下面这行 Python 代码做了什么?

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

我不确定它从用户那里得到了什么以及它有什么用处。

【问题讨论】:

    标签: python logic


    【解决方案1】:

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

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

    如果用户输入非空,那么它的真值为真,它会被用作or表达式的结果:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-01-25
        • 2017-01-06
        • 1970-01-01
        • 2020-04-20
        • 2021-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-23
        相关资源
        最近更新 更多