【问题标题】:Python 3: why the result of input() in ['y', 'Y'] is false when I enter y?Python 3:当我输入 y 时,为什么 ['y', 'Y'] 中的 input() 的结果为假?
【发布时间】:2012-10-19 15:54:18
【问题描述】:

我对 Python 很陌生。我在一个文件中编写了以下脚本:

# ...\temp\test.py
x = (input() in ['y', 'Y'])
print(x)

并在命令行中运行:

python test.py

y

False

据我了解,打印结果应该是 True。但实际结果是假的。这是为什么呢?

我的环境: 操作系统:win7 Python:3.2

【问题讨论】:

    标签: windows-7 input python-3.2


    【解决方案1】:

    它在 Ubuntu 中对我来说很好用。我能想到的唯一一件事是 Windows 坚持额外的空白空间。试试这个:

    x = (input().strip() in ['y', 'Y'])
    

    如果这不起作用,请执行以下操作:

    y = input()
    x = (y in ['y', 'Y'])
    print(y)
    print(x)
    

    然后你就可以看到 input() 实际上返回了什么

    【讨论】:

    • 它可以在 Win7 上使用脚本“x = (input().strip() in ['y', 'Y'])”。它适用于所有脚本,包括你和我在 XP 上的脚本。似乎是与操作系统环境相关的问题。非常感谢您的回复。
    • @KurtisZhao:你检查了那里的第二段代码中实际存储在“y”中的内容吗?你能说一下是什么吗?
    • 我在互联网上搜索了几天并在我的win7机器上尝试了几个小时,但仍然无法得到答案。我会继续调查它,并会在得到它时通知你(希望我能得到它)。如果你得到答案,请与我分享。谢谢。
    • 这是 3.2 上的一个错误,已在 3.3 上修复。今天,我在我的win7机器上重新安装了3.3,它现在可以工作了。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2020-06-26
    • 2019-05-08
    • 2013-11-22
    相关资源
    最近更新 更多