Python中raw_input()与input()函数的区别与用法详解
本文详细解析Python中raw_input()与input()函数的差异。raw_input()始终返回字符串,需手动转换类型;input()尝试计算输入值,直接返回对应类型(如整数)。文章通过代码示例展示了如何转换为int、list或str,并指出input()处理非数值字符串时的报错机制及向下取整特性。
近期在开发中涉及使用raw_input()和input()函数进行即时数据录入,为此查阅了相关文档并结合实际应用场景整理出以下使用说明。
1、raw_input()函数解析
raw_input([prompt]) -> string
根据系统定义,该函数用于读取标准输入流中的字符串。无论用户输入的是数字、字符还是其他内容,系统均将其视为字符串格式处理。
具体示例如下:
print "Please input a num:" k = raw_input() print k print type(k)
程序运行后的输出表现:
Please input a num: 23 23 <type 'str'>
当输入数字23时,输出结果为23,但其数据类型为str(字符串)。
因此,在不同业务场景下,往往需要对输入内容进行类型转换。
1)转换为int整型
print "Please input a num:" n = int(raw_input()) print n print type(n)
运行结果如下:
Please input a num: 23 23 <type 'int'>
输入23,输出23,此时数据类型为int(整数)。
2)转换为list列表型
print "please input list s:" s = list(raw_input()) print s print type(s)
运行结果如下:
please input list s: 23 ['2', '3'] <type 'list'>
输入23,输出为['2', '3'],数据类型为list(列表)。
关于如何直接生成数值型列表的方法,目前尚未找到直接方案,此处作为思考题供读者探讨。
2、input()函数解析
input([prompt]) -> value Equivalent to eval(raw_input(prompt))
可以看出,input()函数的输出结果是“值”,这相当于对raw_input()的返回值执行了eval()计算后的结果。
示例代码如下:
print "please input something :" m = input() print m print type(m)
运行结果1的情况:
please input something : 23 23 <type 'int'>
输入23,输出23,此时数据类型为int(整数)。
运行结果2的情况:
please input something : abc Traceback (most recent call last): File "D:/python test/ceshi1.py", line 24, in <module> m = str(input()) File "<string>", line 1, in <module> NameError: name 'abc' is not defined
输入abc时,程序报错(因为字符型输入无法通过eval计算)。
不过,我们仍然可以对input()的返回结果进行二次转换:
1)转换为str字符串
print "please input something :" m = str(input()) print m print type(m)
运行结果如下:
please input something : 23 23 <type 'str'>
当输入为数值型23时,输出23,数据类型转换为str(字符串)。
2)转换为int整型
print "please input something :" m = int(input()) print m print ty
运行结果如下:
please input something : 23.5 23 <type 'int'>
输入23.5,输出23,数据类型为int(整数),此处表现为默认向下取整。
注意:input()函数不支持直接转换为list列表。
以上关于Python中raw_input()和input()用法的详解内容分享到此结束,希望能为读者提供参考,也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













