【问题标题】:cause for python 3.4.3 IDLE and windows shell input() inconsistencies?python 3.4.3 IDLE 和 windows shell input() 不一致的原因?
【发布时间】:2015-06-01 00:37:09
【问题描述】:

我正在从 windows 命令提示符(windows 8.1,python 3.4.3 64 位)运行一个 python 程序。在解决为什么 input() 在 IDLE 中与在 cmd.exe 中对我不起作用时,我发现虽然 IDLE 正确处理 input() 的结果(即作为 str 类型),但 cmd.exe 错误地处理输入.具体来说,cmd.exe 根据给定的类型存储一个值:数字存储为 int 类型,如果给定 float,则存储为 float 类型,不带引号的字符串引发 NameError,带引号的值存储为str 类型。 cmd.exe 会错误地处理 input() 是否有正当理由。我曾经亲眼看到的测试程序如下。

def input_tester():
    x = input("Input: ")    
    print(x, type(x))
while True:
    input_tester()

【问题讨论】:

    标签: python-3.x input cmd


    【解决方案1】:

    我想将此添加为评论,但由于我的代表,它不会让我这样做。我建议尝试用eval(input()) 代替你的input()。看看有没有帮助。

    【讨论】:

    • 嗨。您的建议有所帮助,因为在脚本中使用 eval(input()) 在 IDLE 中调用了与我从 cmd.exe 中的 input() 获得的相同行为。这让我意识到,虽然我使用的是 python 3 IDLE,并且如果我在 cmd.exe 中运行 python,它会加载 python 3 环境,直接在 cmd.exe 中加载 .py 脚本是在 python 2 环境中加载它们。我已经通过卸载 python 2 并重新安装 3 解决了这个问题。谢谢!
    猜你喜欢
    • 2016-05-17
    • 1970-01-01
    • 2015-10-07
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2019-06-11
    • 2014-04-30
    相关资源
    最近更新 更多