Python数字处理(数字类型,类型转换,数字函数,随机函数)

一、数字类型体系:数值世界的基石

1.1 数值类型分类

Python支持四种核心数字类型:

类型示例特征存储范围
int42, -7, 0整数,无小数点取决于系统架构(64位)
float3.14, -0.001双精度浮点数约±1.8×10³⁰⁸
complex3+4j, 2-5j复数(实部+虚部)双精度组件
boolTrue, False逻辑值(0/1的别名)仅两个取值

注意​:布尔类型是int的子类,True == 1False == 0均为True

1.2 复数类型示例

# 复数运算
z = 3 + 4j
print(z.real)   # 输出实部3.0
print(z.imag)   # 输出虚部4.0
print(z.conjugate())  # 共轭复数(3-4j)

二、类型转换:数值形态变换术

2.1 显式类型转换

# 整数转浮点
print(float(5))     # 输出5.0

# 浮点转整数(截断取整)
print(int(3.9))     # 输出3
print(int(-2.7))    # 输出-2

# 字符串转数值
print(int("42"))    # 输出42
print(float("3.14"))# 输出3.14

# 数值转字符串
print(str(100) + "元")  # 输出"100元"

2.2 转换异常处理

# 无效转换处理
try:
    print(int("12.3"))  # 触发ValueError
except ValueError:
    print("无法转换含小数点的字符串")

# 安全转换方案
def safe_convert(s):
    try:
        return int(s)
    except ValueError:
        return float(s) if '.' in s else None

print(safe_convert("3.14"))  # 输出3.14

三、数学函数库:数值计算的瑞士军刀

3.1 math模块核心函数

import math

# 基础运算
print(math.ceil(3.2))     # 上取整→4
print(math.floor(3.8))    # 下取整→3
print(math.fabs(-5.5))    # 绝对值→5.5

# 幂与根
print(math.pow(2, 3))     # 8.0
print(math.sqrt(16))      # 4.0

# 三角函数
print(math.sin(math.pi/2))  # 1.0
print(math.degrees(math.pi))# 180.0

# 对数计算
print(math.log(100, 10))  # 2.0(以10为底)
print(math.exp(1))        # e≈2.718

3.2 随机数模块

import random

# 基础随机数
print(random.random())    # [0.0,1.0)浮点数
print(random.randint(1,10))# 1-10闭区间整数

# 范围选择
print(random.choice(['红', '蓝', '绿']))  # 随机选取元素
print(random.sample(range(1,50), 5))    # 无重复抽样

# 洗牌操作
cards = ['♠','♥','♦','♣']*13
random.shuffle(cards)
print(cards[:5])  # 输出随机排列的前5张

四、运算规则详解:数值操作的底层逻辑

4.1 算术运算优先级

运算顺序遵循PEMDAS法则:

  1. 括号 ()
  2. 指数 **
  3. 正负号 +x -x
  4. 乘除 * / // %
  5. 加减 + -
# 计算顺序演示
result = 3 + 5 * 2 ​**​ 2 - 6 // 3
# 分解步骤:
# 2**2=4 → 5 * 4=20 → 6//3=2 → 3+20=23 → 23-2=21
print(result)  # 输出21

4.2 浮点数精度问题

# 精度误差演示
print(0.1 + 0.2)        # 输出0.30000000000000004
print(round(2.675, 2))  # 输出2.67(四舍五入规则)

# 解决方案:使用Decimal模块
from decimal import Decimal
print(Decimal('0.1') + Decimal('0.2'))  # 输出0.3

五、随机数系统:概率世界的引擎

5.1 随机种子控制

# 固定种子保证可重复性
random.seed(42)
print(random.random())  # 总是输出0.6394267984578837

# 时间种子(每次不同)
random.seed()

5.2 高级应用案例

import random

# 生成验证码
def generate_code(length=6):
    chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
    return ''.join(random.choices(chars, k=length))

print(generate_code())  # 示例输出:QW9F3E

# 模拟骰子游戏
def dice_roll(n=2):
    return [random.randint(1,6) for _ in range(n)]

print(dice_roll())  # 示例输出:[3,5]

六、常见问题与解决方案

6.1 大整数处理

# 超长整数运算
big_num = 10 ​**​ 1000
print(big_num ​**​ 2)  # 支持任意精度计算

# 科学计数法表示
print(1.23e10)       # 输出12300000000.0

6.2 类型混合运算

# int与float运算
print(3 + 4.5)  # 输出7.5(结果转为float)

# bool参与数值运算
print(True + 5)  # 输出6(True=1)
print(False * 10) # 输出0(False=0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值