Python中的input方法与raw_input方法区别小记
来源:互联网 发布:传智播客35期java 编辑:程序博客网 时间:2024/05/04 14:01
用C++写完POJ3750之后,想来没事,就用Python改写一下,之后问题,就出来了。
import sysdef main(): max_num = 64 child_name = [] print 'Please input number' number = raw_input() while len(child_name) < number: child_name.append(raw_input()) print child_nameif __name__ == "__main__": main()
在运行的时候,感觉出了死循环,逻辑上有没发现什么问题,之后就困惑了,最终发现,问题竟然是出在raw_input()上,印象中好像也之前貌似也有一次类似问题,所以就先总结一下吧,以免今后出现同样的问题。
>>> A = raw_input("A(raw_input):")A(raw_input):5>>> type(A)<type 'str'>>>> B = input("B(input):")B(input):5>>> type(B)<type 'int'>>>> B = input("B(input):")B(input):3.4>>> type(B)<type 'float'>
看如上的例子,当用户输入的是数字时,raw_input()是作为字符处理,而input()是处理为数值的类型,如int和float。
那么当输入为字符的时候,raw_input()和input()又会有什么不同呢?
>>> A = raw_input("A(raw_input):")A(raw_input):heacewalker>>> type(A)<type 'str'>>>> B = input("B(input):")B(input):heacewalkerTraceback (most recent call last): File "<pyshell#16>", line 1, in <module> B = input("B(input):") File "<string>", line 1, in <module>NameError: name 'heacewalker' is not defined当输入为字符时,raw_input()会正常接收用户输入,其类型为string,而input()会出现错误提示,在看下面的例子,input()会接收合法的python表达式
>>> B = input("B(input):")B(input):"heacewalker">>> type(B)<type 'str'>通过官方文档
input([prompt])
Equivalent to eval(raw_input(prompt)).
可以得知,input()相当于raw_input()之后再执行eval()函数的处理结果。
Consider using theraw_input() function for general input from users.
所以相对用raw_input()处理用户输入更好一些,只是需要在数值处理上,给予类型的转换便可。
0 0
- Python中的input方法与raw_input方法区别小记
- python中的raw_input() 与 input()区别
- raw_input() 与 input() 区别 -- Python
- Python中的raw_input() 与 input()
- python中的raw_input() 与 input()
- Python中的raw_input() 与 input()
- python input 与raw_input函数的区别
- python input 与raw_input函数的区别
- Python中raw_input() 与 input() 的区别
- python编程input与raw_input区别
- python中raw_input() 与 input() 的区别
- Python中raw_input() 与 input()的区别
- raw_input() 与 input() __ Python 的区别
- Python 读取键盘输入 区别input()与raw_input()
- Python里raw_input() 与 input() 区别
- Python 中的input(),raw_input()与zip()
- input()与raw_input()区别
- python input()与raw_input()
- 【Cracking the coding interview】Q1.2(反转字符串)
- 将android源码的签名包,转化为eclipse可以的签名包
- 当你真正感觉到痛,你才知道痛是什么——ACM退役贴
- Spring深入浅出(一)概述
- 安全联盟宣布与浙江卫视正式签约合作
- Python中的input方法与raw_input方法区别小记
- c/c++常用算法(10) -- 基本排序算法(选择排序)
- js中进制转换
- struts2 <s:submit>国际化时提示警告关于ognl.OgnlException: target is null for setProperty(null的解决方案
- Qt 4.8.5 静态编译小结
- 浮动的div自适应居中显示的js代码
- StrictMode
- uitableview横放显示cell
- RMAN RESTORE FAILS WITH RMAN-06023 BUT THERE ARE BACKUPS AVAILABLE (Doc ID 965122.1)