相信读者已经知道"Hello, " + name + "!"是什么意思了,那么,raw_input函数怎么用呢?input函数不够好吗?让我们试一下。在另外一个脚本文件中输入下面的语句:
name = input("What is your name? ")
print "Hello, " + name + "!"
这是一个完全合法的程序。但是,一会你就会看到,这样是不可行的。尝试运行该程序:
What is your name? Gumby
Traceback (most recent call last):
File "C:/python/test.py", line 2, in ?
name = input("What is your name? ")
File "<string>", line 0, in ?
NameError: name 'Gumby' is not defined
问题在于input会假设用户输入的是合法的Python表达式(或多或少有些与repr函数相反的意思)。如果以字符串作为输入的名字,程序运行是没有问题的:
What is your name? "Gumby"
Hello, Gumby!
然而,要求用户带着引号输入他们的名字有点过分,因此,这就需要使用raw_input函数,它会把所有的输入当作原始数据(raw data),然后将其放入字符串中:
>>> input("Enter a number: ")
Enter a number: 3
3
>>> raw_input("Enter a number: ")
Enter a number: 3
'3'
除非对input有特别的需要,否则应该尽可能使用raw_input函数。