• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

我想在Python中创建Eratosthenes的筛选器,但程序仍然返回原始输入。哪里不对?

python 来源:B D 5次浏览

我想在这里得到Eratosthenes的筛选,但代码不断返回原始列表。我不知道什么是错的。请帮助一个可怜的新手 – 并且非常感谢你提前!我想在Python中创建Eratosthenes的筛选器,但程序仍然返回原始输入。哪里不对?

def main(): 
    cupcake = [] 
    i = 0 
    for i in range(1, 101): 
     cupcake += [i] 
    cupcake.remove(1) 
    cupcake.insert(0, 0) 
    for j in range(len(cupcake)): 
     if cupcake[j] > 0: 
      for k in range(len(cupcake)): 
       if cupcake[k] > 0: 
        product = int(cupcake[k])/int(cupcake[j]) 
        if (type(product) is int) == True: 
         if product == 1: 
          continue 
         cupcake.remove(cupcake[k]) 
         cupcake.insert((k-1), 0) 
    print(cupcake) 


===========解决方案如下:

product = int(cupcake[k])/int(cupcake[j]) 

在此声明product将永远是一个浮点值,即使它是一个整数(2.0,…)。所以它后面的声明总是会返回false。你必须从

if (type(product) is int) == True: 

后改变语句

if product.is_integer(): 

它使用float.is_integer()功能。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)