TypeError: 'float' object cannot be interpreted as an integer

本文探讨了在从Python2升级到Python3时遇到的TypeError:'float'objectcannotbeinterpretedasaninteger错误。此错误源于Python3中除法运算符(/)的行为变化,它默认返回浮点数而非整数。文章提供了修复此问题的方法,即使用双斜杠(//)进行整数除法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TypeError: 'float' object cannot be interpreted as an integer

命令行报错

在使用案例中的代码时,报错

TypeError: 'float' object cannot be interpreted as an integer

源代码

#!/usr/bin/python
# -*- coding:utf-8 -*-

import operator


def c(n, k):
    return reduce(operator.mul, range(n-k+1, n+1)) / reduce(operator.mul, range(1, k+1))


def bagging(n, p):
    s = 0
    for i in range(n / 2 + 1, n + 1):
        s += c(n, i) * p ** i * (1 - p) ** (n - i)
    return s


if __name__ == "__main__":
    for t in range(10, 101, 10):
        print (t, '次采样正确率:', bagging(t, 0.6))



原因

案例中是用的python2,/ 是取整,是int型
而python3,/ 是保留小数的,是float型

解决

// 即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值