Cuando tenemos un número indeterminado de argumentos
def mimax(*edades): #cuando no se sabe el número de argumentos se pone asterisco
print(f"El mayor en la fiesta tenía {max(edades)} años")
mimax(20, 30, 18, 24, 26)
El mayor en la fiesta tenía 30 años
def postre(fruta = "naranja"):
return "De postre mejor una fruta, por ejemplo " + fruta
print(postre('manzana'))
print(postre()) #si no se especifica un argumento se toma el valor por defecto
De postre mejor una fruta, por ejemplo manzana De postre mejor una fruta, por ejemplo naranja
Cuando una función no lleva return el compilador añade al final un return True
.
Si en una función hay dos returns solo se ejecuta el primero ya que finaliza la función.
import random
def destino(numero):
if numero == 1:
return 'Norte'
if numero == 2:
return 'Sur'
aleatorio = random.randint(1,2)
punto_cardinal = destino(aleatorio)
print("Este verano viajaré hacia el", punto_cardinal)
Este verano viajaré hacia el Norte
Cuando esto no sucede se produce un error.
def suma(a,b):
return a+b
#suma(10) # error
Una posible solución es establecer unos valores por defecto de tipo None
y luego con un if
controlar el error.
def suma(a=None,b=None):
if a==None or b==None: return "Error: se han de pasar dos argumentos"
else: return a+b # sin el else también funciona
suma()
'Error: se han de pasar dos argumentos'
suma(10)
'Error: se han de pasar dos argumentos'
suma(10,5)
15