Python3 数字(Number)
Python3 数字(Number)
🎯 学习目标
掌握 Python 中数字类型的基本概念、常见操作与实际应用场景,包括整数(int)、浮点数(float)、复数(complex)的使用方法。理解数字运算、精度处理、类型转换及常用数学函数库的使用,为后续数据处理和算法开发打下坚实基础。
🔑 核心重点
分类 | 内容 |
---|---|
基本类型 | int , float , complex |
数学运算 | 加减乘除、幂、取余、位运算等 |
精度问题 | 浮点数精度误差,decimal 模块高精度计算 |
类型转换 | int() , float() , complex() |
数学函数库 | math , random , decimal |
实际应用场景 | 金融计算、科学计算、数据分析、游戏开发等 |
📚 详细讲解
一、Python 数字类型概述
Python 支持三种主要的数字类型:
类型 | 示例 | 描述 |
---|---|---|
int |
10 , -5 , 0 |
整数,支持任意大 |
float |
3.14 , -0.001 |
浮点数,带小数或指数形式 |
complex |
2+3j , -1j |
复数,用于科学工程计算 |
a = 10 # int
b = 3.14 # float
c = 2 + 3j # complex
⚠️ Python 是动态类型语言,变量无需声明类型。
二、整数(int)
✅ 定义方式:
x = 100
y = -50
z = 0
✅ 支持大整数:
big_num = 1234567890123456789012345678901234567890
print(big_num ** 2) # 可以轻松进行超大整数运算
✅ 进制表示:
进制 | 表示方式 | 示例 |
---|---|---|
十进制 | 默认 | 100 |
二进制 | 0b 开头 |
0b1010 → 10 |
八进制 | 0o 开头 |
0o12 → 10 |
十六进制 | 0x 开头 |
0xA → 10 |
三、浮点数(float)
✅ 定义方式:
pi = 3.14
temp = -0.001
sci = 1.23e5 # 科学计数法:123000.0
✅ 浮点数精度问题:
print(0.1 + 0.2) # 输出:0.30000000000000004
⚠️ 因为计算机内部用二进制表示浮点数,所以某些十进制无法精确表示。
建议使用decimal.Decimal
模块进行高精度计算(如金融场景)。
四、复数(complex)
✅ 定义方式:
z = 2 + 3j
w = complex(4, 5) # 构造器方式
✅ 获取实部与虚部:
print(z.real) # 输出:2.0
print(z.imag) # 输出:3.0
📌 应用:常用于信号处理、图像处理、物理学等领域。
五、数字运算符与函数
✅ 常见运算符:
运算符 | 描述 | 示例 |
---|---|---|
+ |
加法 | 2 + 3 → 5 |
- |
减法 | 5 - 2 → 3 |
* |
乘法 | 4 * 3 → 12 |
/ |
除法 | 7 / 2 → 3.5 |
// |
整除 | 7 // 2 → 3 |
% |
取余 | 7 % 2 → 1 |
** |
幂运算 | 2 ** 3 → 8 |
✅ 常用内置函数:
abs(-5) # 绝对值 → 5
round(3.14159, 2) # 四舍五入到两位小数 → 3.14
pow(2, 3) # 幂运算 → 8
max(1, 2, 3) # 最大值 → 3
min(1, 2, 3) # 最小值 → 1
divmod(7, 2) # 同时返回商和余数 → (3, 1)
六、常用数学模块
1. math
模块:标准数学函数
import math
print(math.sqrt(16)) # 平方根 → 4.0
print(math.sin(math.pi/2)) # 正弦 → 1.0
print(math.log(10)) # 自然对数 → ~2.3026
2. random
模块:随机数生成
import random
print(random.random()) # 0~1 之间的随机浮点数
print(random.randint(1, 10)) # 1~10 的随机整数
print(random.choice(['a', 'b', 'c'])) # 随机选择一个元素
3. decimal
模块:高精度浮点数
from decimal import Decimal
a = Decimal('0.1')
b = Decimal('0.2')
print(a + b) # 输出:Decimal('0.3')
📌 适用于金融、货币计算等需要高精度的场景。
七、数字类型转换
✅ 显式转换函数:
print(int("123")) # 字符串转整数 → 123
print(float("3.14")) # 字符串转浮点 → 3.14
print(complex("2+3j")) # 字符串转复数 → (2+3j)
✅ 跨类型转换:
print(3 + 4.5) # int + float → float
print(2 + (3+4j)) # int + complex → complex
⚠️ 不同类型之间会自动转换为更复杂的类型。
⚠️ 注意事项
- 浮点数计算存在精度误差,避免直接比较两个浮点数是否相等。
- 使用
isinstance()
判断类型比type()
更安全。 - 复数不能参与比较大小(如
<
,>
),但可以判断是否相等。 - 在 PyCharm 中使用调试器查看变量类型和数值变化非常方便。
- 使用
round()
时注意“银行家舍入”规则(四舍六入五看前一位奇偶)。
🧪 实际案例分析
📌 场景:模拟银行账户余额操作
from decimal import Decimal
balance = Decimal('1000.00')
def deposit(amount):
global balance
balance += amount
print(f"存款成功!当前余额:{balance}")
def withdraw(amount):
global balance
if amount > balance:
print("余额不足!")
else:
balance -= amount
print(f"取款成功!当前余额:{balance}")
deposit(Decimal('500.00'))
withdraw(Decimal('300.00'))
📌 分析:
- 使用
Decimal
确保金额计算精度。 - 使用
global
模拟全局账户状态。 - 可扩展为完整的银行系统原型。
🧩 拓展练习(动手实践)
- 编写一个程序,输入一个年份,判断是否为闰年(提示:需考虑整数运算)。
- 输入圆的半径,计算并输出其面积(公式:πr²)。
- 编写一个函数,接收一个整数 n,返回所有小于 n 的素数。
- 模拟掷骰子游戏,每次掷出 1~6 之间的随机整数。
- 使用
random
和math
模块绘制一个简单的正弦波图形(可选绘图库如 matplotlib)。
📚 推荐阅读
- Python 官方文档 - 数值类型
- 《流畅的 Python》第 2 章 - 数据结构与数值类型
- 廖雪峰 Python 教程 - 数字与字符串
- 菜鸟教程 - Python 数字类型
- Python 编程从入门到实践 - 第 2 章 - 数字与简单计算
🧭 下一步建议
- 下一章学习内容:《Python 字符串(String)详解》
- 深入理解字符串格式化、编码与解码机制
- 探索正则表达式在字符串处理中的应用
- 学习使用
str
类型的方法进行文本操作 - 结合数字与字符串知识,尝试编写交互式命令行应用
如果你希望我为你提供:
- Python 数字类型思维导图 PDF
- 更多实战项目练习题(如计算器、银行系统模拟器等)
decimal
模块高级用法详解math
与random
模块综合应用案例- 视频教学资源推荐(中文讲解)
欢迎随时告诉我 😊