Python Funciones

Enviado por jalemany el Jue, 03/10/2019 - 21:34

El siguiente código nos dice cuántos divisores tiene un número.

n = 100
divisores = 0
for i in range(1, n + 1):
  if (n % i == 0):
    divisores = divisores + 1
print(divisores)

¿Cómo se puede cambiar para mirar si un numero es primo? Un número es primo si tiene dos divisores, así que podríamos añadir una condición después de contar los divisores.

n = 100
divisores=0
for i in range(1,n+1):
  if (n%i==0):
    divisores=divisores+1
if (divisores==2):
  print("primo")
else:
  print("no primo")

Es probable que queramos usar este código muchas veces en nuestro programa. En lugar de copiarlo y pegarlo varias veces, lo podemos encapsular y darle un nombre:

def primo(n):
  divisores=0
  for i in range(1,n+1):
    if (n%i==0):
      divisores=divisores+1
  if (divisores==2):
    return true
  else:
    return false

Hemos creado una nueva instrucción primo() a la que le podemos pasar un número y nos dirá si es primo o no. A esta encapsulación se le llama función.

En la cabecera de la función podemos ver def comando que indica que estamos delante de una función, primoque es el nombre de la función, y (n) que son los parámetros de la función. Los parámetros nos permiten ejecutar esa parte del código con valores distintos. Por ejemplo primo(7) devolverá cierto, y en cambio primo(10) devolvería falso. La instrucción return es la que "devuelve" el resultado al punto del código desde donde se ha llamado a la función.

Un ejemplo para contar todos los números primos entre 2 y 100 (ambos incluidos):

def primo(n):
  divisores = 0
  for i in range(1, n + 1):
    if (n % i == 0):
      divisores = divisores + 1
  if (divisores == 2):
    return true
  else:
    return false

numeros = 0
for i in range (2, 101):
  if primo(i):
    numeros = numeros + 1
print(numeros)
Printer Friendly, PDF & Email

Añadir nuevo comentario

Texto sin formato

  • No se permiten etiquetas HTML.
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.