当前位置: 首页 > news >正文

【Python Number(数字)】

Python 中的数字类型是编程的基础元素,用于表示数值数据并进行数学运算。以下是 Python 数字类型的核心知识点:


一、基础数字类型

  1. 整数(int

    • 表示整数值,例如 42, -7, 0
    • 支持任意精度(无大小限制):
      a = 10 ** 100  # 10的100次方
      
  2. 浮点数(float

    • 表示小数,例如 3.14, -0.5, 2e3(科学计数法)
    • 注意精度问题:
      0.1 + 0.2  # 结果为 0.30000000000000004(浮点数精度误差)
      
  3. 复数(complex

    • 表示复数,例如 3+4jj 表示虚部)
    • 支持复数运算:
      (2+3j) * (1-2j)  # 结果为 (8-1j)
      

二、数字运算

1. 基本运算
5 + 3   # 加法 → 8
7 - 2   # 减法 → 5
4 * 6   # 乘法 → 24
10 / 3  # 除法 → 3.333...
10 // 3 # 整除 → 3
9 % 2   # 取余 → 1
2 ** 5  # 幂运算 → 32
2. 增强赋值
x = 10
x += 5   # 等价于 x = x + 5 → 15
x *= 2   # 等价于 x = x * 2 → 30
3. 比较运算
5 > 3    # True
3.14 == 3.14  # True
-2 <= 1  # True

三、常用数学函数

通过 math 模块实现高级运算:

import mathmath.sqrt(16)     # 平方根 → 4.0
math.ceil(3.2)    # 向上取整 → 4
math.floor(3.8)   # 向下取整 → 3
math.pi           # 圆周率 → 3.141592653589793
math.sin(math.pi/2)  # 正弦函数 → 1.0

四、数字转换

  1. 类型转换

    int(3.14)    # → 3(截断小数部分)
    float(5)     # → 5.0
    complex(2)   # → 2+0j
    str(123)     # → "123"(转为字符串)
    
  2. 进制转换

    bin(10)      # 二进制 → '0b1010'
    hex(255)     # 十六进制 → '0xff'
    oct(8)       # 八进制 → '0o10'
    

五、随机数生成

通过 random 模块实现:

import randomrandom.random()       # 生成 [0.0, 1.0) 随机浮点数
random.randint(1, 10) # 生成 [1, 10] 随机整数
random.choice([3,6,9])# 随机选择元素 → 可能返回6

六、数字格式化

# 格式化为字符串
f"π≈{math.pi:.2f}"   # → "π≈3.14"# 千位分隔符
format(1234567, ",")  # → '1,234,567'

七、特殊数字值

  • float('inf') : 正无穷大(比任何数都大)
  • float('-inf') : 负无穷大
  • float('nan') : 非数字(Not a Number)

八、应用场景示例

  1. 金融计算

    principal = 1000
    rate = 0.05
    years = 10
    future_value = principal * (1 + rate) ** years  # 复利计算
    
  2. 图像处理

    # 将像素值(0-255)归一化到 [0,1]
    normalized = pixel_value / 255.0
    
  3. 游戏开发

    # 计算抛射体轨迹
    import math
    angle = math.radians(45)
    velocity = 50
    max_height = (velocity ** 2) * (math.sin(angle) ** 2) / (2 * 9.8)
    

通过掌握这些数字类型和运算方法,可以高效处理从简单算术到复杂科学计算的各类数值问题。实际开发中需注意浮点数精度问题和类型转换陷阱。

相关文章:

  • 性能优化-初识(C++)
  • 自定义Widget开发:手势交互处理
  • ES6入门---第三单元 模块五:Map和WeakMap
  • CentOS 安装 Zellij 终端复用器教程
  • WHAT - Rust 静态派发(Static Dispatch)和 动态派发(Dynamic Dispatch)
  • 【MongoDB篇】MongoDB的分片操作!
  • HTB - Eureka记录
  • 如何使用极狐GitLab 软件包仓库功能托管 maven?
  • 【JS逆向基础】WEB自动化
  • 给小白的AI Agent 基本技术点分析与讲解
  • Node.js 的 child_process 模块详解
  • IIS配置SSL
  • Flowchart 流程图的基本用法
  • 新能源汽车中的NVM计时与RTC计时:区别与应用详解
  • [ubuntu]fatal error: Eigen/Core: No such file or directory
  • 从一次被抄袭经历谈起:iOS App 安全保护实战
  • 声波解码器:当40kHz遇见AIoT时代——超声波传感器的“隐形智慧”革命
  • ETL介绍
  • C++ -- 哈希扩展
  • C++从入门到实战(十二)详细讲解C++如何实现内存管理
  • 花2万多在海底捞办婚礼,连锁餐企要抢酒楼的婚宴生意?
  • 105岁八路军老战士、抗美援朝老战士谭克煜逝世
  • 国防部:正告菲方停止以任何方式冲撞中方核心利益
  • 巴基斯坦信德省首府卡拉奇发生爆炸
  • 两部上戏学生作品亮相俄罗斯“国际大学生戏剧节”
  • 罗氏制药全新生物制药生产基地投资项目在沪启动:预计投资20.4亿元,2031年投产