domingo, 24 de junio de 2018

Funciones en Python

Reto: Funciones

Crear una función que calcule el cuadrado de un número. Probar la función con los números entre -10 y +10. Crear otra función que lo único que hace es imprimir al final la frase “Programa finalizado”. Ejecutar ambas funciones.




Método 1

Inicializamos la variable z en -10.
Disponemos de dos funciones que se ejecutan con las dos últimas líneas del programa.
La sentencia print(cuadrado(z)) llama a la función cuadrado y le pasa el valor -10.
La función cuadrado comienza inicializando la lista resultado como lista vacía.
Nos metemos en un bucle while que se repetirá hasta que z sea menor que 11.
Dentro del bucle lo que hacemos es añadir a la lista, con append, los cuadrados de z.
Incrementamos z de uno en uno con z+=1.
La función concluye con un return que devuelve la lista resultado ya completa, con todos los cuadrados de los números por los que ha variado z, que van entre -10 y +10.
La última línea del código llama a la función fin(), que no lleva argumento.
Esta función no contiene un return y lo que hace únicamente es imprimir la frase 'Programa finalizado'.

z= -10
def cuadrado(z):
  resultado=[]
  while z<11:
    resultado.append(z**2)
    z+=1
  return(resultado)
def fin():
  print('Programa finalizado')
print(cuadrado(z))
fin()


Método 2

Inicializamos la variable z en -10.
Disponemos de dos funciones. En este caso, existe un while que está fuera de la función y que la llama reiteradamente enviándole los valores de z que varían entre -10 y +10. Estos valores son recogidos por la función cuadrado que usa como argumento la variable n. Hemos querido llamar con otro nombre a la variable de la función para que veamos que no es necesario volver a llamarla z.
La función cuadrado retorna el cuadrado de z.
Dentro del bucle while se encuentra el print que imprime el valor que devuelve la función cuadrado.
La última línea de código llama a la función fin() que en este caso retorna la frase 'Programa finalizado'. Para mostrar una forma de trabajar diferente respecto al método anterior, en esta ocasión, el print no se encuentra en la función sino en la última línea del programa.


z=-10
def cuadrado(n):
  y=n**2
  return(y)
def fin():
  x=('Programa finalizado')
  return(x)
while z<11:
  print(cuadrado(z))
  z+=1
print(fin())


Método 3

Las dos últimas líneas de código ejecutan las dos funciones que existen. A la función cuadrado le pasamos el argumento z=10. Inicializamos la lista resultado como una lista vacía. Nos metemos en un bucle for que recorre los valores entre -z y +z con range. Calculamos el cuadrado de la variable auxiliar i y lo vamos añadiendo a la lista con append. Retornamos el resultado que se imprimirá en pantalla.
Finalmente llamamos a la función fin que imprime 'Programa finalizado'.


def cuadrado(z):
  resultado=[]
  for i in range(-z,z+1):
    resultado.append(i**2)
  return(resultado)
def fin():
  print('Programa finalizado')
print(cuadrado(10))
fin()


Método 4

En este caso la función cuadrado únicamente nos retorna el cuadrado del argumento que le pasemos y el bucle for se encuentra fuera de la función. Lo que hace el bucle es llamar a la función de forma reiterada pesándola los valores del argumento que varían entre -10 y +10.
La función fin no imprime nada, simplemente retorna su frase y ésta es impresa por la última línea de código.


def cuadrado(x):
  return x**2
for i in range(-10,11):
  print(cuadrado(i))
def fin():
  return 'Programa finalizado'
print(fin())

2 comentarios:

  1. Hola, estoy empezando en esto. Comparto una idea que me surgió, es una variante más.
    def sqr():
    for x in range(-10,11): #probando en el intervalo pedido
    print(x," elevado al cuadrado da ",x**2)
    def end():
    print("Programa terminado")
    sqr()
    end()

    ResponderEliminar