python基础02—raw_input()和input()的区别

 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))
View Code

 可以看到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。

 

原文地址:https://www.cnblogs.com/yimiaoyikan/p/8708480.html