input()函数和raw_input()函数
- input函数先来看以下代码
name = input("What is your name? ")
print "Hello, " + name + "!"
运行代码后会出现以下的问题:What is your name? GumbyTraceback (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表达式,如果你输入的是一个字符串,那么则不会出现报错,如下:What is your name? "Gumby"Hello, Gumby!
- raw_input()函数
raw_input则将你的输入的原始数据转化为字符串,比如>>> input("Enter a number: ")Enter a number: 33>>> raw_input("Enter a number: ")Enter a number: 3'3'除非你有特殊的需求,否则一般都是使用raw_input()来进行输入。当输入整数,和8进制,16进制整数,或者浮点数时,可以像一下:##输入整数 x = int(raw_input("enter a intege: ")) ##输入浮点数 x = float(raw_input("enter a float: ")) ##输入16进制数 x = int(raw_input("enter 0x number: "), 16)
还有一个短路逻辑的小trick:name = raw_input('Please enter your name: ') or '<unknown>'
这样的话,如果输入了,就是输入值,否则name的值为 '<unknonw>'