input和raw_input的比较

相信读者已经知道"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函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值