Python2.x vs Python3——从 raw_input() 到 input()
2016-02-16 10:56
831 查看
Python2.7 vs Python3
Python 2.x 中的
最初,曾有人建议将 input() 和 raw_input() 从 Python 内置的名称空间(namespace)一并删除,因此就需要进行导入来获得输入能力。这从方法上就不对。因为,简单键入:
将会变为:
对于一个简单输入而言,这太过繁琐,并且对于一个新手,这未免太难理解。往往需要向他们讲述
[2] Python 3 初探,第 1 部分: Python 3 的新特性
# Python2.7 >>> base = input('input: ') input: 5 >>> base 5 >>> type(base) <type 'int'> >>> base = input('input: ') input: 3+5 >>> base 8 >>> base = input('input: ') input: abc input: abc Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'abc' is not defined
Python 2.x 中的
input()函数需要的是一个有效的 Python 表达式(expression)。除此之外,在 Python 2.x 中,
raw_input()会出标准输入(sys.stdin)读取一个输入并返回一个字符串。
>>> quest = raw_input('what is your quest? ') what is your quest? To seek the holy grail. >>> quest 'To seek the holy grail.'
最初,曾有人建议将 input() 和 raw_input() 从 Python 内置的名称空间(namespace)一并删除,因此就需要进行导入来获得输入能力。这从方法上就不对。因为,简单键入:
>>> quest = input('what is your quest? ')
将会变为:
>>> import sys >>> print('what is your quest? ') >>> quest = sys.stdin.readline()
对于一个简单输入而言,这太过繁琐,并且对于一个新手,这未免太难理解。往往需要向他们讲述
模块和
导入究竟是怎么回事、字符串输出以及句点操作符又是如何工作的(如此麻烦的话,与 Java™ 语言就没什么差别了)。所以,在 Python 3 内,将 raw_input() 重命名为 input(),这样一来,无须导入也能从标准输入获得数据了。如果您需要保留版本 2.x 的 input() 功能,可以使用 eval(input()),效果基本相同。
# Python 3 >>> base = input('input: ') input: 5 >>> base '5' >>> type(base) str >>> base = input('input: ') input: abc >>> base 'abc' >>> eval(input('input: ')) input: 3+5 8
References
[1] raw_input() 与 input() __ Python[2] Python 3 初探,第 1 部分: Python 3 的新特性
相关文章推荐
- python正则表达式——re模块
- Python面向对象编程总结(上)
- Python - 批量更改文件名
- python 矩阵随机生成
- 优美的 Python
- 十条建议帮你提高Python编程效率
- Python 布尔操作(and/or,Boolean operator)与位操作(&/|,Bitwise operator)
- bpython 功能强大的Python shell
- python Sparse matrices 单位矩阵
- python小点心--Event
- 深入解读Python解析XML的几种方式
- python(3)-内置函数2
- Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python
- Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python
- Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python
- 我的Mac之路(1)—— 安装虚拟机,以及打造VIM IDE for Python
- python语法学习
- 深入解读Python解析XML的几种方式
- bpython 功能强大的Python shell
- 十条建议帮你提高Python编程效率