首页 > 解决方案 > 如何在 for 语句中使 work 成为一个函数?

问题描述

我在这个练习中遇到了问题。他们首先让我编写一个代码来检测一个数字是否是质数。这与这里的这段代码配合得很好:

def primo(n):
  resultado = False
  div = 2
  while div**2 <= n:

    if n == 1:
        resultado = False
        div+=1
    if n%div == 0:
      resultado = False   
      return resultado
      div**2 > n
    else:
      resultado = True

    div+=1

  return(resultado)

在此之后,练习要求我编写一个 for 循环来检查 1 到 20 之间的任何数字是否是素数,所以我写道:

for n in range(1,21):
    primo(n)

什么也没发生,这是为什么呢?

标签: pythonpython-3.x

解决方案


primo返回一个布尔值,指示该数字是否为素数,但您对该值不做任何事情,因此您永远看不到结果。你可能想要这样的东西:

for n in range(1, 21):
    is_prime = primo(n)
    print('{} is prime? {}'.format(n, is_prime))

推荐阅读