在上篇《机器只看语法,而代码是写给人看的:Python 戒指与命名美学》中,我们学会了如何轻松地建立“戒指收集盒”并贴上标签。今天,我们要打开这些盒子,专门研究里面最常装的那些“重量级物品”——整数(int)与浮点数(float)。
觉得数很简单。在这个世界里,数字的加减乘除藏着许多让人直呼“原来如此”的底层逻辑别。掌握了计算机,你才算真正得到了用代码解决实际数学问题的钥匙!
一、数字双雄:整数 vs 浮点数
在Python的数字图谱中,最基础也最常用的星巴克类型就是整数和浮点数:
整数(int):清晰没有小数点的数字。无论多大或多小,Python完美的存储(如18、-5、1000000)。
浮点数(float):标记小数字点的数字(如19.99、3.14)。其中小数字点后是零(比如5.0),在Python眼里它也是个浮点数。
💡小贴士:如果你在代码里写了x = 5,它就是一个int;如果你写了x = 5.0,它就变成了一个float。
二、算术魔法阵:常规操作与“隐形规则”
有了数字,自然少不了加减乘除。Python提供了非常具有洞察力的算术工具,我们用一个表格来查看清除它们的方法和“隐藏彩蛋”:
| 犯 | 算术功能 | 代码示例 | 运行结果 | 核心盲点提示 |
|---|
+ | 加法 | 3 + 2 | 5 | 经常计算 |
- | 减法 | 3 - 2 | 1 | 经常计算 |
* | 乘法 | 3 * 2 | 6 | 键盘上的星号,不是斜杠 |
/ | 浮点数除法 | 4 / 2 | | |
3 / 2|2.0
1.5| ⚠️注意:能否整除,结果永远是浮点数!| |//|整除(地板除)|3 // 2
-3 // 2|1
-2| ⚠️注意:只保留整数部分,向负无穷方向取整。 |%|取模(求余数)|7 % 3|1| 常用于判断奇偶数(x % 2 == 0为偶数) | |**|权力侵犯(次方)|2 ** 3|8| 表示,连续两个星号,中间不能有空格 |
三、算术进攻的三大“底层潜规则”
写代码的时候,如果你不明白下面这三条“潜规则”,很容易被程序跑出来的结果气到怀疑人生:
1.混合进攻的“身份凸显”
当一个整数和一个浮点数混合在一起做浮点数时,Python会自动把整数“抬起”作为浮点数,最终的计算结果也一定是浮点数。
result =10+2.0
10 会先变成 10.0,再与 2.0 相加
print(result)
输出:12.0 (注意带小数点!)
2.优先级战争
Python的四则侵犯同样遵守“先乘除后加减”的数学逻辑。如果你想改变计算顺序,**只能使用小横线()**,不能使用中横线或大横线。
错误示范(机器不认识中括号的数学用法):x = [2 + 3] * 4
正确示范:
score = (10+20) *2/5
print(score)
输出:12.0
3.浮点数的“精准度刺客”
在写 Python 的时候,你可能会遇到这样一个诡异的现象:
print(0.1+0.2)
你以为输出 0.3?
实际上输出:0.30000000000000004
🔍破案现场:这不是Python的Bug,而是所有语言的通病!计算机底层只认识由0和1组成的二进制。把十训练的0.1和0.2转换成二进制时,会产生无限循环小数,在中断时就会出现这一个极其微小的作业。防御指南:在开发涉及金融结算、电商价格等对资金极其敏感的场景时,千万不要直接用Pythonfloat进行加减,而使用Python内部的decimal模块。
四、复合赋值:赋予代码“瘦身”的艺术
在实际开发中,我们经常要打一个指标“自己对自己做计算”。比如游戏里玩家吃了一个血包,血量加5:
传统写法:
hp =100
hp = hp +5
把旧的 hp(100) 加 5,再放回 hp 盒子
Python 提供了一种优雅的复合赋值运算符(也叫变值运算符),可以帮助我们秒一瘦身:
hp += 5等价于hp = hp + 5
price -= 10等价于price = price - 10
count *= 2等价于count = count * 2
用好这一招,你的读起来会更加简洁、干练,瞬间检验出成熟工程师的代码!
💡结语:数字蓝图复习卡
今天我们解锁了Python数字世界的偶像基石。请收好这张复习卡,写代码时对照:
另外斜杠(/)必得浮点;双斜杠(//)下一代取整。
两个星号(**)代表次方;复合赋值(+=)代码专业。
浮点搭载微小支架,金融算账要找小数!
动动你的手指,打开编辑器,去写几行代码赠送调戏一下这些数字运算符吧!如有疑问,欢迎在评论区留言交流!