Python for循环计数结果为随机浮点数而非整数,求助排查
问题分析与解决:计数逻辑输出随机浮点数
核心问题是total变量未初始化:
如果total在之前的代码或交互环境中已经是浮点数类型,且每次运行这段代码前没有重置它的值,循环就会在旧的浮点数基础上累加1,结果自然是带小数的浮点数;再加上每次运行前total的初始值可能被其他操作修改,所以输出结果会随机变化。
修复后的代码
显式初始化total为整数0,确保每次运行都是从0开始计数:
total = 0 for i in range(len(test)): if test.loc[i, 'Final%'] > 50: total += 1 print(total)
更高效的写法(推荐)
用pandas的向量运算替代循环,不仅代码更简洁,执行效率也更高:
total = (test['Final%'] > 50).sum() print(total)
test['Final%'] > 50会生成一个布尔值Series,sum()方法会自动将True视为1、False视为0求和,直接得到整数结果。
内容的提问来源于stack exchange,提问作者Apr0x1m0
相关产品推荐
相关产品推荐

