摘要: raw_input() & input()
raw_input的功能是方便的从控制台读入数据。
input与raw_input都是Python的内建函数,实现与用户的交互,但是功能不同。
一、raw_input
下面介绍让raw_input的几种功能。
1、输入字符串
1>>> raw_input_A = raw_input("raw_input:")2 raw_input:abc3>>>type(raw_input_A)4
上面输入的abc为字符串str类型
2、输入整数
1 >>> raw_input_A = raw_input("input int:")2 input int:abc3 >>>type(raw_input_A)4
输入的123也为字符串 str 类型
3、输入浮点数
1 >>> raw_input_A = raw_input("input a float:")2 input a float:1.23 >>>type(raw_input_A)4
输入1.2为字符串 str 类型
4、输入16进制数
1 >>> raw_input_A = raw_input("input Hex:")2 input Hex:0X203 >>>type(raw_input_A)4
输入0X20为字符串str类型
5、输入八进制数
1 >>> raw_input_A = raw_input("input Oct:")2 input Oct:1103 >>>type(raw_input_A)4
输入八进制数为字符串 str 类型
二、input
1、输入整数
1 >>> input_A = input("input int:")2 int:1233 >>>type(input_A)4
输入123为整型 int
2、输入浮点数
1 >>> input_A = raw_input("input a float:")2 input a float:1.23 >>>type(input_A)4
3、输入八进制数
1 >>>input_a = input("input H:")2 input H:00H33 Traceback (most recent call last):4 File "", line 1, in ?5 File " ", line 16 00H37 ^8 SyntaxError: unexpected EOF while parsing9 >>>
输入003H报语法错,input无法识别
4、十六进制类似八进制
5、输入字符串
1 >>> input_a = input("input string:")2 input string:abc3 Traceback (most recent call last):4 File "", line 1, in ?5 File " ", line 0, in ?6 NameError: name 'abc' is not defined7 >>>
输入字符串abc, 提示未定义错误
1 >>> input_a = input("input string:")2 input string:'abc'3 >>> type(input_a)45 >>>
输入'abc',可以正确识别,为str类型
raw_input 与 input 的区别
这两个函数都可以读取用户的输入,不同的是input()函数要求用户输入有效的表达式,而raw_input()函数将用户输入的任意类型数据都转换为一个字符串。
当输入纯数字时
>>>raw_input返回字符串类型,string
>>> input返回的是数值类型,如int、float
输入字符串表达式时
>>> input() 会计算字符串中的数字表达式,而raw_input()不会
1 >>> input(3+8)2 113 >>> raw_input(3+8) 4 11 5 ''
Python input的实现
查看可得知,input是由 raw_input实现的:
input
([prompt]) Equivalent to eval(raw_input(prompt))
. input()本质上是由raw_input()来实现,调用raw_input()后再调用eval()函数,所有,可以将表达式作为input()的参数,且会计算表达式的值并返回。 built-in-function中还说: Consider using the function for general input from users. 除了特殊需要,一般情况下建议使用raw_input()函数。 从 raw_input() 到 input() Python 2.X 在2.x版本中: raw_input() 会从标准输入(sys.stdin)读取输入值并返回一个字符串,且尾部换行符从末尾移除。 input()不同,需要输入有效的表达式,如3+8,'abc'。 Python 3 在Python 3中,将raw_input()重命名为 input(),这样一来,无需导入也可从标准输入获得数据。如需要保留2.X版本的 input() 功能, 可以使用 eval_r(input()), 效果基本相同。