Python raw_input() 函数
python raw_input() 用来获取控制台的输入。
raw_input() 将所有输入作为字符串看待,返回字符串类型。
注意:input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。
除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。
注意:python3 里 input() 默认接收到的是 str 类型。
函数语法
raw_input([prompt])
参数说明:
- prompt: 可选,字符串,可作为一个提示语。
实例
raw_input() 将所有输入作为字符串看待
>>>a = raw_input("input:")
input:123
>>> type(a)
<type 'str'> # 字符串
>>> a = raw_input("input:")
input:runoob
>>> type(a)
<type 'str'> # 字符串
>>>
input() 需要输入 python 表达式
>>>a = input("input:")
input:123 # 输入整数
>>> type(a)
<type 'int'> # 整型
>>> a = input("input:")
input:"runoob" # 正确,字符串表达式
>>> type(a)
<type 'str'> # 字符串
>>> a = input("input:")
input:runoob # 报错,不是表达式
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'runoob' is not defined
<type 'str'>
叨叨
101***9454@qq.com
参考地址
1、在 Python2.x 中 raw_input( ) 和 input( ),两个函数都存在,其中区别为:
2、在 Python3.x 中 raw_input( ) 和 input( ) 进行了整合,去除了 raw_input( ),仅保留了 input( ) 函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。
叨叨
101***9454@qq.com
参考地址
戈尔斯罗
zha***i_wow@163.com
补充一下一楼的回答:
Python2 中 input() 函数并不是只能接收“数字”输入。其与 raw_input() 的关系如下: input() = eval(raw_input()) 也可以认为是将 raw_input() 函数返回的结果 eval() 了一下。
因为引入了 eval(),所以会存在代码注入的风险。
同时,在 Python3 中,是将 Python2 的 raw_input() 函数保留、重命名为 input(),同时移除了 Python2 的 input() 函数。因此,在 Python3 中,是不存在 input() 函数代码注入风险的。
戈尔斯罗
zha***i_wow@163.com