鱼C论坛

 找回密码
 立即注册
查看: 98|回复: 1

[学习笔记] 笨办法学python

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
习题4

Python中整数(int)与浮点数(float)的核心区别

1. 定义与表示形式

整数(int)是没有小数部分的数字,用于表示完整的数值,如5、-20、0。浮点数(float)是带有小数部分的数字,用于表示非整数值,如3.14、-0.001、2.5e2(科学计数法,等价于250)。Python中整数没有大小限制(仅受内存约束),而浮点数默认为双精度(float64),遵循IEEE 754标准。

2. 存储方式

整数在内存中以纯二进制形式存储,直接对应数值的二进制编码(如5的二进制为101),因此能精确表示任意大小的整数。浮点数则遵循IEEE 754标准,存储为三部分:1位符号位(表示正负)、11位指数位(表示数量级)、52位尾数位(表示精度)。这种存储方式导致浮点数无法精确表示某些十进制小数(如0.1的二进制是无限循环小数)。

3. 精度差异

整数是精确类型,运算结果不会有精度损失。例如,10 // 3的结果是3(地板除,直接截断小数部分),5 + 7的结果是12,均与数学结果一致。浮点数是近似类型,由于尾数位有限,部分十进制小数无法精确存储。例如,0.1 + 0.2的结果是0.30000000000000004,而非精确的0.3;1.1 + 2.2 - 3.3的结果是5.551115123125783e-17(接近0但不等于0)。

4. 运算规则

• 除法运算:整数相除(/)的结果是浮点数(Python 3中),如10 / 3的结果是3.3333333333333335;浮点数相除的结果仍是浮点数。若需整数结果,需使用地板除(//),如10 // 3的结果是3。  

• 类型转换:当整数与浮点数进行混合运算时,Python会自动将整数转换为浮点数,再进行运算。例如,3 + 0.5的结果是3.5(3被转换为3.0)。

5. 特殊值处理

浮点数包含三个特殊值:  
• 正无穷(inf):表示超过浮点数最大值的数,如float('inf');  

• 负无穷(-inf):表示小于浮点数最小值的数,如float('-inf');  

• NaN(Not a Number):表示无效运算结果,如float('nan')(0/0的结果)。  

整数没有这些特殊值,若整数运算超出范围(如2**1024),会抛出OverflowError异常。

6. 应用场景

整数适合计数、索引、离散数值等场景,如统计用户数量(user_count = 100)、列表索引(lst[0])。浮点数适合测量、科学计算、金融分析等需要小数的场景,如计算温度(temperature = 36.5)、距离(distance = 12.3)、货币金额(需注意精度问题,建议用decimal模块)。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层
鱼油你好,关于Python中整数(int)和浮点数(float)的核心区别,我来为你总结一下,确保内容简洁易懂。


1. 定义与表示形式
- 整数(int)是没有小数部分的数字,如 5-200,用于表示完整数值,没有大小限制(仅受内存约束)。
- 浮点数(float)是带有小数部分的数字,如 3.14-0.0012.5e2(科学计数法,等价于250),遵循IEEE 754标准,默认为双精度(float64)。

2. 存储方式
- 整数以纯二进制形式存储,能精确表示任意大小的整数,例如5的二进制为101。
- 浮点数存储为三部分:符号位、指数位和尾数位,这导致某些十进制小数无法精确表示(如0.1的二进制是无限循环小数)。

3. 精度差异
- 整数是精确类型,运算无精度损失,例如:
  1. 10 // 3  # 结果是3
  2. 5 + 7    # 结果是12
复制代码

- 浮点数是近似类型,可能有精度误差,例如:
  1. 0.1 + 0.2  # 结果是0.30000000000000004
  2. 1.1 + 2.2 - 3.3  # 结果是5.551115123125783e-17
复制代码


4. 运算规则
- 除法运算:整数相除(/)在Python 3中结果为浮点数,如 10 / 3 得3.3333333333333335;使用地板除(//)可得整数结果,如 10 // 3 得3。
- 类型转换:混合运算时,整数自动转为浮点数,如 3 + 0.5 得3.5。

5. 特殊值处理
- 浮点数有特殊值:正无穷(inf)、负无穷(-inf)和NaN(Not a Number),例如:
  1. float('inf')  # 正无穷
  2. float('-inf') # 负无穷
  3. float('nan')  # NaN
复制代码

- 整数无特殊值,超出范围会抛出OverflowError异常,如 2**1024

6. 应用场景
- 整数适合计数、索引等离散场景,如 user_count = 100
- 浮点数适合测量、科学计算等需要小数的场景,但金融计算建议用decimal模块避免精度问题。

希望这个总结对你有帮助!如果有更多疑问,欢迎继续提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-27 05:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表