|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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模块)。 |
|