Python 为什么会有打字错误
为什么会这样:Python 为什么会有打字错误,python,python-3.x,Python,Python 3.x,为什么会这样: def p3(x): primes = [2] for a in range(3, x, 2): sqrt = a ** 0.5 for b in range(3, sqrt, 2): if a % b == 0: break if a % b != 0: primes.ap
def p3(x):
primes = [2]
for a in range(3, x, 2):
sqrt = a ** 0.5
for b in range(3, sqrt, 2):
if a % b == 0:
break
if a % b != 0:
primes.append(a)
return primes
print(p3(19))
退回这个:
TypeError: 'float' object cannot be interpreted as an integer, line 5
这是什么意思?如何更正它?提前感谢,
LewisC
sqrt
属于float
类型,因此不能与range()一起使用:
sqrt
属于float
类型,因此不能与range()一起使用。
:
因为sqrt
是一个浮点数,range
严格要求整数
你可能想要这个:
for b in range(3, int(sqrt) + 1, 2):
因为sqrt
是一个浮点数,range
严格要求整数
你可能想要这个:
for b in range(3, int(sqrt) + 1, 2):
请记住,int(sqrt)
将向下舍入平方根,并且不包括range()
的停止。这里需要int(sqrt)+1
。否则,9将被视为素数。请记住,int(sqrt)
将向下舍入平方根,并且不包括range()
的停止。这里需要int(sqrt)+1
。否则,9将被视为素数。
for b in range(3, int(sqrt) + 1, 2):