Python3 数字(Number)(长文讲解)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观
前言
在编程世界中,数字(Number)如同语言中的词汇,是构建程序逻辑的核心元素。无论是简单的计算、复杂的算法设计,还是数据科学中的统计分析,数字类型都扮演着不可或缺的角色。对于Python开发者而言,掌握数字类型的操作与特性,是迈向高效编程的重要一步。本文将深入浅出地讲解Python3中数字类型的分类、运算规则、实际应用场景,并通过案例解析帮助读者理解如何灵活运用这些知识。
Python3 中的数字类型分类
1. 整数(Integers)
定义与特点
整数是Python中最基础的数字类型,可以是正数、负数或零,且没有小数点。Python3对整数的表示没有大小限制,理论上可以处理任意长度的数值。
形象比喻
可以将整数想象为“精确的尺子”——它不带任何误差,适用于需要绝对数值精度的场景,例如:
- 统计用户数量
- 计算循环次数
- 处理布尔值(0和1的二进制逻辑)
代码示例
age = 25
temperature = -5
counter = 0
print(type(age)) # 输出:<class 'int'>
进制表示
Python支持多种进制的直接表示:
- 十进制:
123
- 二进制:
0b1010
(等同于十进制10) - 八进制:
0o17
(等同于十进制15) - 十六进制:
0x1A
(等同于十进制26)
binary_num = 0b1010
hex_num = 0x1A
print(binary_num + hex_num) # 输出:36
2. 浮点数(Floats)
定义与特点
浮点数用于表示带有小数部分的数值,例如 3.14
或 -0.001
。Python使用双精度浮点数(64位),但需要注意浮点数运算可能因二进制精度问题产生微小误差。
形象比喻
浮点数如同“有误差的测量工具”——虽然能表示更复杂的数值范围,但需警惕精度问题。例如:
print(0.1 + 0.2) # 输出:0.30000000000000004
这是因为 0.1
和 0.2
在二进制中无法精确表示,导致计算误差。
科学计数法表示
浮点数支持科学计数法,例如:
mass_of_earth = 5.97e24 # 5.97 × 10^24 千克
tiny_value = 1.23e-10
print(mass_of_earth) # 输出:5.97e+24
3. 复数(Complex Numbers)
定义与特点
复数由实部和虚部组成,形式为 a + bj
,其中 a
和 b
是浮点数,j
表示虚数单位(满足 j² = -1
)。复数在工程、物理等领域有广泛应用。
形象比喻
复数可视为“二维坐标点”,例如:
point = 3 + 4j
print(point.real) # 实部:3.0
print(point.imag) # 虚部:4.0
运算示例
c1 = 2 + 3j
c2 = 1 - 1j
sum_c = c1 + c2 # (3+2j)
product_c = c1 * c2 # (5+1j)
print(sum_c, product_c)
数字类型的核心运算操作
1. 算术运算符
Python支持常见的算术运算符,如加减乘除、幂运算等。
基础运算示例
a = 10
b = 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.333...
print(a % b) # 取余:1
print(a ** b) # 幂运算:1000
进阶运算符
//
:地板除(向下取整)divmod()
:返回商和余数的元组
print(10 // 3) # 3
print(divmod(10, 3)) # (3, 1)
2. 位运算与位操作
位运算直接对二进制位进行操作,常用于低层编程或优化性能。
常用位运算符
| 运算符 | 含义 | 示例 |
|-------|----------------|--------------|
| &
| 按位与 | 5 & 3 = 1
|
| |
| 按位或 | 5 | 3 = 7
|
| ^
| 按位异或 | 5 ^ 3 = 6
|
| ~
| 按位取反 | ~5 = -6
|
| <<
| 左移(乘2的幂)| 5 << 1 = 10
|
| >>
| 右移(除2的幂)| 8 >> 1 = 4
|
实际应用
位运算可快速判断奇偶性:
num = 7
if num & 1:
print("奇数") # 输出:奇数
3. 比较与逻辑运算
比较运算符
a = 5
b = 3
print(a > b) # True
print(a == b) # False
print(a != b) # True
逻辑运算符
逻辑运算符 and
, or
, not
可组合条件判断:
x = 10
y = 5
if x > 5 and y < 10:
print("条件成立") # 输出:条件成立
数字类型的转换与操作
1. 类型转换函数
Python提供 int()
, float()
, complex()
函数实现类型转换:
num_str = "42"
num_int = int(num_str)
print(type(num_int)) # <class 'int'>
float_num = 3.9
int_num = int(float_num)
print(int_num) # 输出:3
real_part = 2
imag_part = 5
complex_num = complex(real_part, imag_part)
print(complex_num) # 输出:(2+5j)
注意事项
- 非法转换会引发
ValueError
,例如int("abc")
- 浮点数转换需谨慎处理精度问题
2. 数字对象的内置方法
Python的数字类型支持多种实用方法:
abs()
:绝对值
print(abs(-7.5)) # 7.5
print(abs(3 + 4j)) # 5.0(复数模长)
pow()
:幂运算
print(pow(2, 5)) # 32(2^5)
print(pow(3, 3, 5)) # 27 mod 5 = 2
round()
:四舍五入
print(round(2.675, 2)) # 2.68(注意浮点精度问题)
实战案例:数字类型的综合应用
案例1:温度单位转换
编写一个将华氏温度转换为摄氏温度的程序:
def fahrenheit_to_celsius(f_temp):
c_temp = (f_temp - 32) * 5/9
return round(c_temp, 2)
f = 98.6
print(f"{f}°F = {fahrenheit_to_celsius(f)}°C")
案例2:财务计算(利息计算)
计算复利终值:
def compound_interest(principal, rate, years):
amount = principal * (1 + rate)**years
return round(amount, 2)
principal = 1000
rate = 0.05 # 5%年利率
years = 10
print(compound_interest(principal, rate, years))
案例3:复数在电路分析中的应用
计算并联电阻的总阻抗:
def parallel_resistance(r1, r2):
total = 1/(1/r1 + 1/r2)
return round(total, 2)
r1 = 4 + 3j # 复阻抗
r2 = 2 - 1j
print(parallel_resistance(r1, r2))
结论
通过本文的讲解,我们系统梳理了Python3中数字类型的核心概念、运算规则及实际应用场景。无论是基础的整数、浮点数操作,还是复数的进阶应用,均需结合具体需求选择合适的类型与方法。在编程实践中,开发者需特别注意浮点数的精度问题、类型转换的合法性,以及运算符优先级对结果的影响。
掌握数字类型的操作,不仅能提升代码的健壮性,还能为后续学习算法、数据分析等高级主题打下坚实基础。建议读者通过编写更多实际案例(如财务计算、工程问题建模)来巩固知识,逐步从“理解理论”过渡到“灵活应用”。
Python3 数字(Number)的深度探索,将助力开发者在编程道路上走得更远!