我在使用Python 3.3.4
为什么两个数字的乘积长度正确,但两个数字的红利长度不正确?
示例:
y = 10 / 2
len(str(y)) #outputs 3 (incorrect - should be 1)
y = 10 * 2
len(str(y)) #outputs 2 (correct)
如果这是一个愚蠢的问题,请原谅我。
答案 0 :(得分:1)
y = 10 / 2
print(y)
# 5.0
将数字5.0
转换为字符串时,它有三个字符。这就是数字长度为3的原因。
如果您正在寻找分区,那么您应该使用//
。
y = 10 // 2
print(y)
# 5
print(len(str(y)))
# 1
两种方法之间的时间比较
from timeit import timeit
print(timeit("len(str(int(10/2)))"))
# 0.3285439129685983
print(timeit("len(str(10//2))"))
# 0.2169595289742574
答案 1 :(得分:0)