Skip to main content
 首页 » 编程设计

python之使用 while 遍历带有条件的列表

2025年05月04日14duanxz

我正在尝试遍历素数列表,但我想在达到某个限制时停止。

def primetest(number,primelst): 
    limit = int(round(sqrt(number),0)+1) 
    while prime in primelst < limit: 
        if (number % prime) == 0: 
            return False 
    return True 

作为 FOR 语句,这是有效的:

def primetest(number,primelst): 
    limit = int(round(sqrt(number),0)+1) 
    for prime in primelst: 
        if (number % prime) == 0: 
            return False 
    return True 

但这很慢,因为它遍历了所有素数,我希望迭代在达到极限时停止。所以 while 语句似乎是更好的选择,但我想不出正确的语法。

请您参考如下方法:

只需在循环体中添加一个检查:

for prime in primelst: 
    if prime > limit: 
        break 
    # ... 

更新:我最初建议使用enumerate,但我看到你实际上想在质数大于limit时停止循环>.