"""
Ejercicio con varias funciones
Puedes comentar algunas funciones con # para ver como se ejecuta el programa
ingresa 1 para dia y dos para noche en la ultima función
Tiene un entradaUsuario=int(input("Ingrese código: ")) porque el imput devuelve cadena,
hay que pasarlo a entero.
Dale a enter después de ingresar el número
W3sc.......♡♡♡♡
"""
def saludo(nombre,apellido,saludo="Que tenga buen día"):
print("Función de saludo")
print(saludo+" "+nombre+" "+apellido )
def generaSaludo(nombre, apellido, saludo="Que tenga buen día"):
"""
:param nombre: Nombre de la person
:param apellido: Apellido de la persona
:param saludo: (opcional) Saludo que se va a dar, por defecto es : Que tenga buen día
:return:
"""
saludoGenerado=saludo + " " + nombre + " " + apellido
return(saludoGenerado)
# dia_noche_mal: Funcion con mas de un return: Rompe estructura de función.
# SI bien, ejecuta correctamente, no es bueno desde el punto de vista de legibilidad.
def dia_noche_mal(cod):
if cod==1:
return("Es de dia")
else:
return("Es de noche")
# dia_noche_bien: Solo un return: Estructura de funcion intacta.
def dia_noche_bien(cod):
valorRetorno="Parámetro incorrecto: 1 para dia y 2 para noche"
if cod==1:
valorRetorno="Es de dia"
elif cod==2:
valorRetorno="Es de noche"
return (valorRetorno)
# --- Aqui acaba la definición de funciones
# main
saludo("Tomás", "Carballo","Muy buenas")
saludo("Josefa", "Prieto","Adiós")
saludo("Monica", "Robledal")
saludoCLiente=generaSaludo("Julio","Miele","Muchas gracias")
print(saludoCLiente)
print(dia_noche_mal(0))
entradaUsuario=int(input("Ingrese código: "))
print(dia_noche_bien(entradaUsuario))
Explicación saludoGenerado:
-
saludoGenerado
se define dentro de la función, por lo tanto su ámbito (scope) es local a esa función.saludoGenerado
fuera de la función.
Solución correcta:
Para usar el valor fuera de la función, debes capturar lo que devuelve el return
:
saludoCLiente=generaSaludo("Julio","Miele","Muchas gracias")
print(saludoCLiente)
O si quieres directamente imprimirlo: