Skip to main content
 首页 » 编程设计

python之为什么会出现TypeError

2025年05月04日18lidabo

为什么会这样:

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 

这是什么意思,我该如何更正它?
提前致谢,
刘易斯C

请您参考如下方法:

因为 sqrt 是一个 float ,而 range 需要严格的整数。

你可能想要这个:

for b in range(3, int(sqrt) + 1, 2):