python2x中:raw_input()和input()虽然都是从控制台读入数据,是2个不同的功能:
raw_input():默认所有输入默认都是字符串格式;如果是想输入数字,用input()
1 name=raw_input("请输入姓名:") 2 age=raw_input("请输入年龄:") 3 4 print("姓名是%s"%(name)) 5 print("年龄是%d"%(age))
可以看到age在格式化输出的时候报错了,
请输入姓名:jim 请输入年龄:12 Traceback (most recent call last): File "XXXXX/xiti07.py", line 14, in <module> print("年龄是%d"%(age)) TypeError: %d format: a number is required, not str 姓名是jim
格式化输出是,提示%d需要一个数字,而不是str。通过print (type(name),type(age)) 来看一下。执行的输出是:
请输入姓名:jim 请输入年龄:13 (<type 'str'>, <type 'str'>)
如果想不报错:python2中,想输入一个数字的话,用input();或者在格式化输出或者其他运算的时候,先进行格式转换
1 name=raw_input("请输入姓名:") 2 age=input("请输入年龄:") 3 print (type(name),type(age)) 4 print ("姓名是%s"%name) 5 print ("姓名是%d"%age)
1 name=raw_input("请输入姓名:") 2 age=raw_input("请输入年龄:") 3 print (type(name),type(age)) 4 print ("姓名是%s"%name) 5 print ("姓名是%d"%int(age))
在python3x中:没有raw_input(),input()接收的所有输入默认都是字符串格式。要想程序不出错,可以把str转成int。