你好,我是雨霖八珞,同名B站UP主。关注合集不迷路。以下内容为个人教学,真诚分享,欢迎交流。
上一篇我们用input()让程序“活”了起来,但也遇到了一些问题:
在交互模式中,输入
r =input("请输入圆的半径")用户输入 2,然后计算圆的周长:
print("圆的周长是:",2 * 3.14 * r),结果报错了。
但同样是input(),换成名字却没问题:
name = input("你叫什么名字?")print("你好",name)为什么呢?
我们来看看 r 和 name 到底都是什么?
在交互模式中,直接输入r回车,输入name回车
发现没,r 和 name的值都是用引号括起来的。
用引号括起来的都是字符串,虽然你输入的是数字2,但在Python眼里,它被当成了文字'2'。
文字不能和小数做乘法。这就是问题所在。
所以,今天我们具体聊聊:数据的个性 —— 数据类型
【说明:今天的案例都是在交互模式下进行,方便查看结果。】
除了整数、浮点数、字符串,Python里还有布尔值(True/False)、空值(None),以及可以装很多东西的列表、元组、字典、集合。这些我们会在后面的内容中陆续介绍。
用type()查看数据的类型
type()是可以查看类型的函数,括号里可以放置需要查看类型的数据。
比如type(5)表示查看数据5的数据类型。
在交互模式中输入:

class可以理解为“类别”或“类”,你只需要知道它表示“这是什么类型”就行。
int 表示整数类型,float表示浮点数类型,str表示字符串类型
1、int 整数
个性:不带小数点的数,可以是正数、负数和0
能做啥:所有算术运算
2、float 浮点数
个性:带小数点的数。就是咱们说的小数
能做啥:所有算术运算。但要注意:浮点数运算有时会有微小误差,以后单独写文章详细讲解。
补充:为什么叫浮点数?
“浮点”表示小数点可以浮动。比如3.14 可以写成0.314 × 10¹ ,小数点向左移了一位;也可以写成0.0314 × 10²,小数点向左移了两位。同样的数字,可以用不同方式来表示,小数点的位置不是固定的,所以叫浮点数。
个性:用引号括起来的数据。单引号、双引号,甚至三引号都可以。但引号必须成对出现。
关于字符串的内容很多,比如为什么可以用单引号、双引号和三引号?什么是三引号?怎么取长度、查字母?以后我们会出单独文章来讲解。你现在仅作了解就可以了。
这里的+ 是拼接,将两个字符串拼接在一起,* 是重复,将字符串重复若干次。它们不是算术运算里的加法和乘法,虽然符号一样,但含义完全不同
multiply :相乘
sequence :序列(字符串、列表、元组等)
出错代码:2 * 3.14 * r
类型错误:不能把字符串(序列)乘以一个浮点数
即使我们输入的是数字,input()函数拿到的永远是字符串,我们已经知道了出错原因,怎么修改呢?
很简单,转换一下就可以了。
还记得前面学过的int,float,str吗?加上()就变成了转换函数。
eval() 的特殊之处
前面三个函数是强制转换 —— 不管你来的是什么,我都要变成我想要的类型,有点霸道总裁的意味。
eval()不一样,比较淡定,你给的啥,它还原的就是啥,妥妥的佛系:
它不会强制转换,而是把字符串还原成它本来的样子。
我最推荐用eval()。
我经常跟学生说:“你不eval,就会emo”,加深他们的印象。
修复计算圆的周长的程序
还可以把第一行和第二行语句合并,显得程序更简洁
r = eval(input('请输入圆的半径'))
c = 2 * 3.14 * r
print("圆的周长是:",c)
写一个程序:
1、让用户输入自己的年龄
2、程序计算出“我比你大两岁”的年龄
3、输出完整的结果
结果如下图所示:
请输入你的年龄:20
我比你大两岁,我已经22岁了
你写出来了吗?把你的代码贴在评论区,看看谁的最简洁。
本公众号内容均为原创。如需转载或引用,请先联系我。谢谢你的尊重。
觉得不错的话,伙伴们记得关注、在看、转发和点赞哈!