python - 算术运算的Python问题
问题描述
我有一行 Python 代码不能正常工作(至少据我所知)。以下是代码行:
print 'progress: {}%'.format((i/len(e_numbers))*100)
的值从i
开始0
并上升到 的长度e_numbers
为 a list
,而 的长度e_numbers
约为17000
。但代码总是打印Progress: 0%
.
知道为什么吗?
解决方案
在 Python 2 中,使用/
to 除两个整数默认执行整数除法,将结果向下舍入到最接近的整数值。因此,只要i
介于 0 和 之间len(e_numbers)
,,i/len(e_numbers)
就会为 0。有两种可能的解决方案:
在除法之前将一个或两个操作数转换为浮点数,例如,
float(i)/len(e_numbers)
放在
from __future__ import division
文件的顶部,以便/
始终产生浮点数。
推荐阅读
- deep-learning - 关于计算 log_sum_exp 中的一个代码段
- spring - Hystrix 命令属性 ignoreExceptions 没有按预期工作
- javascript - Puppeteer 评估问题
- c++ - 'std::invoke':在 C++ 中使用线程时没有匹配的重载函数
- javascript - Javascript骰子游戏
- javascript - 每个字母一次大写
- matrix - Power Bi 矩阵将 A 列除以另一列 B 的相应值,而不是 B 的总和
- c# - 如何评估三元字符串表达式并识别值
- python - 如何获得 lightgbm 模型特征的方差解释?
- node.js - Passport JS 管理员用户验证