通过Python 3的input()进行的输入会自动转换为整数

时间:2019-04-02 19:29:29

标签: python python-3.x windows

我正在使用Python 3中的input()通过命令行读取文本文件,并且文件中显示为数字的行被自动视为整数,从而导致错误。我的理解是input()不应进行任何评估,而应将它们视为字符串。是什么导致了这种现象,我该如何预防?

编辑:对于一个更干净的示例,如果我的代码只是读取

cases = input()
print(type(cases))

我的输入文件显示为:

100
4 2

然后我输入cmd:

script.py < input_file.txt > output_file.txt

我的输出文件将包含

<type 'int'>

1 个答案:

答案 0 :(得分:0)

@Patrick Artner几乎可以肯定是正确的。您的代码应能在Python 3中按预期方式运行,但在Python 2中,您会得到想要的结果。

与Python 3的 input()等效的Python 2是raw_input(),它将输入转换为您期望的字符串。

编辑:顺便说一句,永远不要在Python 2中使用input()。它会评估用户的输入,因此是不安全的。 (如果输入是os.system("<some really horrible command>")呢?)这就是Python 3替换它的原因。