Python中input()和raw_input()函数的比较与应用

2,095次阅读

共计 776 个字符,预计需要花费 2 分钟才能阅读完成。

通过例子来了解 input() 和 raw_input() 的区别及用法,在脚本中输入下面的代码:

name = input(“What’s your name?”)
print “Hello, ” + name + “!”

输出后显示如下:

What’s your name?Chai
Traceback (most recent call last):
File “ex.py”, line 1, in <module>
name = input(“What’s your name?”)
File “<string>”, line 1, in <module>
NameError: name ‘Chai’ is not defined

虽然看上去是完全合法的程序,结果却无法输出。问题在于 input() 会假设用户输入的是合法的 Python 表达式(或多或少有些与 repr 函数相反的意思)。试着以带引号的字符串形式 "Chai" 重新输入,显示输出成功。

What’s your name?”Chai”
Hello ,Chai!

对于 input(),它希望能够读取一个合法的 Python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError。

因此,要求用户必须带着引号输入他们的内容显得有些过分,这时就需要使用 raw_input() 函数,它会把所有的输入当作原始数据(raw data),然后将其放进字符串中。接下来使用一个 raw_input() 的例子:

print “How much do you weigh?”,
weight = raw_input()
print “So,you are”, weight, “heavy.”

>>
How much do you weigh? 80kg
So,you are 80kg heavy.

最终的输出内容非常顺利。所以,除非对 input() 确实有特殊需要,否则一般情况下都会推荐使用 raw_input() 来与用户进行交互操作。

全文完
 
西西
📝创作说明:本文由 西西 于2013-03-26发表,共计776字。
🉑转载说明:本作品采用 “知识共享署名-非商业性使用 4.0 国际许可协议” 进行许可。除特殊说明外,您可以自由的转载和修改,但请务必注明来源且不可用于商业目的。