input 和 raw_input
我们看下面的代码
#!/usr/bin/python
name = input("What is your name ?")
print "hello,"+name+"!"
执行,输入name,直接就报错了
What is your name ?awen
Traceback (most recent call last):
File "test.py", line 2, in <module>
name = input("What is your name ?")
File "<string>", line 1, in <module>
NameError: name 'awen' is not defined
而加上引号输入则没有问题
What is your name ?"awen"
hello,awen!
因为 input 会假设输入的是合法的表达式,如果输入带引号的值是没有问题的。
那么修改为 raw_input 呢
#!/usr/bin/python
name = raw_input("What is your name ?")
print "hello,"+name+"!"
我们在保存运行下,完全没问题
What is your name ?awen
hello,awen!
所以,在编写 python 程序,要求输入时,除非特别的需求,否则尽量使用 raw_input