python - 有没有办法接受 '%' 作为输入的一部分,在 python 2.6 和 3.0 中都有效?

标签 python python-2.6

在 2.6 中,如果我需要接受允许百分号的输入(例如“foo % bar”),我使用 raw_input() ,它按预期工作。

在 3.0 中,input() 完成了相同的任务(raw_input() 已离开建筑物)。

作为练习,我希望能够有一个向后兼容的版本,可以与 2.6 和 3.0 一起使用。

当我在2.6中使用input()并输入“foo % bar”时,返回以下错误:

  File "<string>", line 1, in <module>
NameError: name "foo" is not defined

...这是预期的。

无论如何要完成接受包含在 2.6 和 3.0 中都有效的百分号的输入吗?

谢谢。

最佳答案

您可以使用sys.version_info来检测正在运行的Python版本。

import sys
if sys.version_info[0] == 2:
    input = raw_input
# Now you can use
input()

或者,如果您不想覆盖 Python 2.X 的内置 input 函数,您可以编写

import sys
if sys.version_info[0] == 2:
    my_input = raw_input
else:
    my_input = input
# Now you can use
my_input()

尽管如此,即使在我的第一个代码示例中,原始的内置 input 始终可用作 __builtins__.input

关于python - 有没有办法接受 '%' 作为输入的一部分,在 python 2.6 和 3.0 中都有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3058649/

相关文章:

python - pyinstaller创建的exe文件,运行时找不到自定义模块

python - 集成pylint和github评论评论

python - boolean 型年

python - 搁置:数据库的选择

python - 使用多个模块进行 Python 日志记录的常见/标准做法是什么?

plone - TypeError : expected string or Unicode object, NoneType found - 多处理池在 Zope/Plone 外部方法中不起作用

collections - 集合模块 Python 中的计数器

python - 这个没有特色的 Python 异常是什么?

python - 将抓取的结果集保存到 CSV 文件中

python - 为什么 python 控制台运行与空闲不同