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.10.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,其中 ab 是浮点数,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)的深度探索,将助力开发者在编程道路上走得更远!

最新发布