You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写兼容Python 2.7与Python 3+的字符串输入单行代码?

兼容Python 2.7和3+的单行输入解决方案

嘿,这个问题我在维护跨版本Python脚本时也碰到过,刚好有几个简洁的单行写法能完美解决你的需求,给你分享两个最实用的:

方法1:版本判断映射(直观易读,推荐)

先导入sys模块(用分号把导入和代码合并成一行),通过主版本号选择对应的输入函数:

import sys; name = raw_input("Enter your name: ") if sys.version_info[0] == 2 else input("Enter your name: ")

sys.version_info[0]会返回Python的主版本号(2对应Python2,3对应Python3),三元表达式会自动匹配当前环境的正确输入方法。

方法2:EAFP风格的单行写法

遵循Python「请求原谅优于请求许可」的设计原则,先尝试调用Python2的raw_input,如果当前环境不存在该函数(即Python3),则切换到input:

name = raw_input("Enter your name: ") if 'raw_input' in dir(__builtins__) else input("Enter your name: ")

这种写法不需要导入额外模块,直接检查内置函数中是否存在raw_input,同样能实现跨版本兼容。

补充说明:如果你的脚本需要处理特殊编码的输入,可能还要对结果做编码转换,但普通文本输入场景下,上面的代码已经完全够用啦。

内容的提问来源于stack exchange,提问作者Yash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:18:26