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 + 35
- 减法 5 - 23
* 乘法 4 * 312
/ 除法 7 / 23.5
// 整除 7 // 23
% 取余 7 % 21
** 幂运算 2 ** 38

✅ 常用内置函数:

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 模拟全局账户状态。
  • 可扩展为完整的银行系统原型。

🧩 拓展练习(动手实践)

  1. 编写一个程序,输入一个年份,判断是否为闰年(提示:需考虑整数运算)。
  2. 输入圆的半径,计算并输出其面积(公式:πr²)。
  3. 编写一个函数,接收一个整数 n,返回所有小于 n 的素数。
  4. 模拟掷骰子游戏,每次掷出 1~6 之间的随机整数。
  5. 使用 randommath 模块绘制一个简单的正弦波图形(可选绘图库如 matplotlib)。

📚 推荐阅读


🧭 下一步建议

  • 下一章学习内容:《Python 字符串(String)详解》
  • 深入理解字符串格式化、编码与解码机制
  • 探索正则表达式在字符串处理中的应用
  • 学习使用 str 类型的方法进行文本操作
  • 结合数字与字符串知识,尝试编写交互式命令行应用

如果你希望我为你提供:

  • Python 数字类型思维导图 PDF
  • 更多实战项目练习题(如计算器、银行系统模拟器等)
  • decimal 模块高级用法详解
  • mathrandom 模块综合应用案例
  • 视频教学资源推荐(中文讲解)

欢迎随时告诉我 😊

posted @ 2025-05-28 00:03  红尘过客2022  阅读(47)  评论(0)    收藏  举报