You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中i与int(i)的区别及给定自定义函数输出结果原因求解

Python 中直接使用i与调用int(i)的区别
  • i是变量本身,会完整保留原始的数据类型和数值
  • int(i)是强制类型转换操作,会按照规则把i的内容转换为整数类型,转换规则如下:
    • 如果i是浮点数:直接截断小数部分,只保留整数位,例如int(99.1)返回99,int(99.9)也返回99,int(99.0)返回99
    • 如果i是字符串:只有内容完全符合整数格式的字符串才能转换成功,否则会抛出类型错误
    • 如果i本身就是整数类型:int(i)返回的结果和i完全一致,没有任何差异
示例代码运行逻辑与结果解释

示例代码如下:

def the_decimal(i):
    if i - int(i) != 0:
        return i - int(i)
    else:
        return 'INTEGER' 

print(the_decimal(99.1))
print(the_decimal(99.0))

函数逻辑

这个函数的作用是判断传入的数值是否包含非0的小数部分:

  1. 计算i - int(i):用原始数值减去它转换为整数后的值,得到的结果就是原始数值的小数部分
  2. 条件判断:如果差值不等于0,说明原始值有非0的小数部分,直接返回这个小数部分;如果差值等于0,说明原始值没有小数部分,返回字符串INTEGER

运行结果及原因

  1. 执行print(the_decimal(99.1)):
    int(99.1)的转换结果是99,99.1 - 99的计算结果为0.10000000000000142(这是二进制浮点数的精度特性导致的,十进制0.1无法用二进制浮点数精确表示),差值不等于0,因此函数返回该小数,打印结果为0.10000000000000142

  2. 执行print(the_decimal(99.0)):
    int(99.0)的转换结果是99,99.0 - 99的计算结果为0.0,差值等于0,因此函数返回INTEGER,打印结果为INTEGER


内容的提问来源于stack exchange,提问作者zenmaster777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:27:02