整型、浮点、复数一次搞明白
学 Python 不可避免要和数字打交道,不管你是算工资、做数据分析还是写游戏,数字类型都是最基础的。今天就带你把 Python 里的数字类型从头到尾捋一遍,看完这篇就够用了。
Python 里用来表示数字的类型有三种:整型、浮点型、复数。它们各有各的用途,搞清楚区别就能在合适的场景用对类型。
整型 int
最常用的就是整型,专门用来表示没有小数点的数字,包括正整数、负整数。比如 42、-7、2024 都是整型,没有大小限制,想多大就多大。
Python 的整型支持四种进制表示:
0b/0B | 0b1010 | ||
0o/0O | 0o12 | ||
10 | |||
0x/0X | 0xA |
💡 小贴士
日常写代码用十进制就行,十六进制在颜色代码和内存地址里常见,二进制在位运算时会碰到。比如 CSS 颜色 #FF5733 就是十六进制,在 Python 里可以写成 0xFF5733。
浮点型 float
带小数点的数字就是浮点型,用来表示实数。像 3.14、0.001、-2.5 都是浮点数。做科学计算、财务统计的时候经常会用到。
⚠️ 注意
浮点数运算有精度问题!0.1 + 0.2 结果是 0.30000000000000004,不是0.3,这是所有编程语言的通病,不是 Python 的bug。需要精确计算用 decimal 模块。
复数 complex
复数由实部和虚部组成,在 Python 里用 3+4j 表示(j 就是虚数单位)。复数平时用得不多,但做信号处理、科学计算时会遇到。
学会了定义数字,接下来就要学怎么运算。Python 支持丰富的算术运算符,日常生活中用到的运算基本都有。
基础四则运算
+ 加、- 减、* 乘、/ 除,这四个跟小学数学一样,不多解释了。
特殊运算
// 取整除(地板除)、% 取模(取余数)、** 幂运算(次方)。
💡 小贴士
/ 和 // 别搞混:10/3=3.333...,10//3=3,前者是真除,后者是地板除。
# 团队分奖金total = 10000members = 3each = total // members # 每人分多少leftover = total % members # 还剩多少print(f'每人{each}元,剩余{leftover}元')# 输出:每人3333元,剩余1元x + y | ||
x - y | ||
x * y | ||
x / y | ||
x // y | ||
x % y | ||
x ** y | ||
abs(x) | ||
int(x) | ||
float(x) | ||
divmod(x,y) | ||
pow(x,y) |
如果基本运算不够用,Python 还内置了一个 math 模块,里面全是数学函数,相当于你的数学工具箱。需要先导入:import math
import math# 算圆的面积radius = 5area = math.pi * radius ** 2print(f'半径{radius}的圆,面积是{area:.2f}')# 输出:半径5的圆,面积是78.54💡 小贴士
math.pi 是圆周率,比你自己写 3.14 精确得多。
实用场景:做数据分析的时候 ceil 和 floor 特别好用,比如分页计算:总共53条数据,每页10条,math.ceil(53/10)=6 页。
abs(x) | abs(-5) | |
ceil(x) | ceil(4.1) | |
floor(x) | floor(4.9) | |
exp(x) | exp(1) | |
log(x) | log(e) | |
log10(x) | log10(100) | |
pow(x,y) | pow(2,10) | |
sqrt(x) | sqrt(144) | |
factorial(x) | factorial(5) |
写验证码、抽签、游戏掉落,都需要随机数。Python 的 random 模块就是干这个的。
import random# 模拟掷骰子dice = random.randint(1, 6)print(f'你掷出了 {dice} 点')# 随机选一个fruits = ['苹果', '香蕉', '橘子']pick = random.choice(fruits)print(f'今天吃{pick}')常用随机函数
random.random():0到1之间的随机小数
random.uniform(x, y):x到y之间的随机小数
random.randint(x, y):x到y之间的随机整数(包含两端)
random.choice(seq):从列表中随机选一个
⚠️ 注意
random 生成的随机数是伪随机,不适合用于密码学!需要加密级别的随机数,用 secrets 模块。
💡 小贴士
随机种子 random.seed() 可以让随机结果可复现,调试的时候特别有用。
数字类型就这些了,整型浮点型日常用得最多,math 和 random 模块按需取用。下一篇我们聊聊字符串,那才是 Python 的强项,记得关注!
Python 学习笔记系列 | 第三篇