On this page

Python Number(数字)

Python Number(数字)类型详解

Python 中的数字类型用于存储数值,主要包括以下几种类型:

1. 数字类型分类

类型说明示例特点
int整数x = 10大小不限
float浮点数(小数)y = 3.14双精度(64位)
complex复数z = 2+3j实部和虚部都是浮点数
bool布尔值(True/False)flag = True实际上是int的子类

2. 基本操作

算术运算

a, b = 10, 3

print(a + b)  # 13 (加法)
print(a - b)  # 7  (减法)
print(a * b)  # 30 (乘法)
print(a / b)  # 3.333... (除法)
print(a // b) # 3  (整除)
print(a % b)  # 1  (取模)
print(a ** b) # 1000 (幂运算)

比较运算

print(a > b)   # True
print(a == b)  # False
print(a != b)  # True

赋值运算

a += 5  # 等价于 a = a + 5
a *= 2  # 等价于 a = a * 2

3. 类型转换

# 显式类型转换
x = int(3.9)    # 3 (截断小数部分)
y = float(5)    # 5.0
z = complex(3)  # (3+0j)

# 字符串转数字
num = int("123")
pi = float("3.14")

# 注意:无效转换会报错
# int("abc")  # ValueError

4. 数学函数

Python 内置了一些数学函数:

# 绝对值
abs(-5)  # 5

# 四舍五入
round(3.14159, 2)  # 3.14

# 最大值/最小值
max(1, 5, 3)  # 5
min(1, 5, 3)  # 1

# 幂运算
pow(2, 3)  # 8 (等价于 2**3)

5. 数学模块(math)

更高级的数学运算需要导入 math 模块:

import math

math.sqrt(16)    # 4.0 (平方根)
math.ceil(3.2)   # 4 (向上取整)
math.floor(3.9)  # 3 (向下取整)
math.sin(math.pi/2)  # 1.0 (正弦函数)
math.log(100, 10)    # 2.0 (对数)

6. 随机数模块(random)

生成随机数:

import random

random.random()       # [0.0, 1.0) 之间的随机浮点数
random.randint(1, 10) # 1到10之间的随机整数
random.choice([1, 2, 3])  # 从序列中随机选择

7. 数字类型特点

int 类型

  • Python 3 中 int 没有大小限制
  • 可以处理非常大的整数
    big_num = 123456789012345678901234567890
    

float 类型

  • 使用 IEEE 754 双精度浮点数
  • 可能存在精度问题(所有编程语言通病)
    0.1 + 0.2  # 0.30000000000000004
    

complex 类型

  • 复数由实部和虚部组成
  • 虚部用 j 或 J 表示
    c = 3 + 4j
    print(c.real)  # 3.0 (实部)
    print(c.imag)  # 4.0 (虚部)
    

8. 数字格式化输出

# 保留2位小数
pi = 3.1415926
print(f"{pi:.2f}")  # 3.14

# 千分位分隔符
num = 1234567
print(f"{num:,}")  # 1,234,567

# 科学计数法
print(f"{0.000123:.2e}")  # 1.23e-04

9. 数字类型判断

x = 5
y = 3.14
z = 2+3j

type(x)  # <class 'int'>
isinstance(y, float)  # True

10. 注意事项

  1. 整数除法:Python 3 中 / 总是返回浮点数,// 返回整数
  2. 浮点数精度:避免直接比较浮点数是否相等

    # 不推荐
    0.1 + 0.2 == 0.3  # False
       
    # 推荐方式
    abs(0.1 + 0.2 - 0.3) < 1e-10  # True
    
  3. 类型转换:确保字符串可以转换为数字,否则会报错
  4. 大整数运算:Python 可以处理非常大的整数,但可能影响性能

11. 实际应用示例

计算圆的面积

import math

radius = 5
area = math.pi * radius ** 2
print(f"半径为{radius}的圆面积是{area:.2f}")

温度转换

def fahrenheit_to_celsius(f):
    return (f - 32) * 5/9

print(f"98.6°F = {fahrenheit_to_celsius(98.6):.1f}°C")

生成随机密码

import random
import string

def generate_password(length=8):
    chars = string.digits + string.ascii_letters
    return ''.join(random.choice(chars) for _ in range(length))

print(generate_password())  # 例如: 'x7Bk2Lp9'

Python 的数字类型功能强大且灵活,能够满足从简单计算到复杂科学计算的各种需求。掌握这些基础知识是进行更高级编程的重要前提。