python学习笔记 | Python 2.x 中 raw_input() 和 input() 的区别

Python 2.x 和 Python 3.x 还是有一点小差别的。比如 input 在 Python 2.x 中有两个函数 raw_input() 和 input()。在 Python 3.x 中,只有一个函数来获取用户输入,这被称为 input(),这相当于 Python 2.7 的 raw_input()。

例 1:input()

name = input('Please enter your number: ')

print name

命令行 1.1

Please enter yournumber:'qq'

qq

命令行 1.2

Please enter yournumber:"qq"

qq

命令行 1.3

Please enter your number: qq

Traceback (most recent call last): 

         File "onr.py", line 1, in < module>#onr.py是我的文件名

        name = input('Please enter your number: ')

    File "< string>", line 1, in < module>

NameError: name 'qq' is not defined

命令行 1.4

Please enter yournumber:11

11

命令行 1.5

Please enter yournumber:'1+1'

1+1

命令行 1.6

Please enter yournumber:1+1

2

例 2:raw_input()

name = raw_input('Please enter your number: ')

print name

命令行 2.1

Please enter your number: qq

qq

命令行2.2

Please enter your number: '1+1'

'1+1'

命令行2.3

Please enter your number: 1+1

1+1


很多人在学习python的过程中很迷茫不知道学习方法,推荐我的qun,氛围非常好,记得备注,就知道是你了

Python 2.x

raw_print() 可以直接读取控制台的任何类型输入,并且只会读入您输入的任何内容,返回字符串类型。即可用把控制台所有输入作为字符串看待,并返回字符串类型。

input() 能够读取一个合法的 python 表达式,返回数值类型,如int,float。即如果你在控制台输入的字符串必须用单引号或双引号将它括起来,否则会引发 SyntaxError 。

Python 2.7 input 说明文档

Python 3.x

Python 2.x 中的 raw_input() 被重命名为 Python 3.x 中的 input(),所以 Python 3.x 中的 input() 返回类型为字符串类型。同时 Python 2.x 中的 input() 在 Python 3.x 中不再保留。

从 Python input 说明文档 可以看到 input() 其实是通过 raw_input() 来实现的,原理很简单,就下面一行代码:

definput(prompt): 

        return (eval(raw_input(prompt)))

如果要使用 Python 2.x 中的 input(),即需要将用户输入看作 Python 语句,则必须手动操作 eval(input())。

你可能感兴趣的:(python学习笔记 | Python 2.x 中 raw_input() 和 input() 的区别)