sábado, 27 de marzo de 2021

Funciones con parámetro opcional, argumentos arbitrarios *arg, parámetros nombrados (no posicional) y parámetros nombrados recibiendo un diccionario.

""" 

    Nuevos Ejercicios funciones


    27 Marzo


"""



def mi_funcion_sin_valores_defecto(nombre, apellido):

    print(nombre + " " + apellido)



def mi_funcion_con_valores_defecto(nombre, apellido=""):

    print(nombre + " " + apellido)



# mi_funcion_sin_valores_defecto("Toto") # Así , falla, porque estoy pasando solo un argumento a una funcion que requiere dos


mi_funcion_con_valores_defecto("Toto")  # Así , no falla ya que el segundo parametro tiene valor por defecto en la función



def lista_nenos(*nenos):

    # print(nenos[2])


    for n in nenos:

        print(n)  # muestro que estoy trabajando con un iterable



lista_nenos("Emil", "Tobias", "Linus")

# cualquier iterable(tuple, lista,... )comienza a contar desde 0



def funcionCualquiera(apellido, edad, nombre):

    print(nombre + " " + apellido + ":" + edad)



# Keyword Arguments - Parametros nombrados

funcionCualquiera(nombre="Maria", apellido="perez", edad="40")


# Ver kwargs en mas detalle (parametros arbitrarios nombrados, entran a funcion como un diccionario)

def mif_funcion_kwargs(**neno):

  print("His last name is " + neno["lname"]) 


mif_funcion_kwargs(fname = "Xan", lname = "Carballo")






sábado, 13 de marzo de 2021

Varias funciones

 

"""
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.
    Una vez que la función termina, esa variable desaparece del contexto externo.
    Por eso, no puedes acceder a 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:


print(generaSaludo("Julio","Miele","Muchas gracias")

sábado, 6 de marzo de 2021

Iterables

"""

    Python marzo 2021

      USA  UN  INTÉRPRETE ON LINE PYTHON 3

    Esto es un comentario multilinea

    Si usas repl.it primero  LOGIN y después CREATE


    

"""

# Iterables


iterableCadena = "ESTO ES una cadena DE CARACTERES y NUMEROS 1234"           # Inmutable


iterableTuple = (1, 5, 22, 34, 17, 8, 3)                                     # Inmutable


iterableTupleC = ("Hola", "Soy", "un", "Tuple, y soy inmutable")            # Inmutable


iterableLista = ["apple", "banana", "cherry"]                                # Mutable


iterableDiccionario = {"marca": "HP", "modelo": "Envy 500", "precio": 1200}  # Mutable


totalizador = 0




for c in iterableCadena:


    print(c)


print("me refiero al elemento 3 de modo numérico",iterableCadena[3])




for i in iterableTuple:


    print(i)


    totalizador += i


print("Total ", totalizador, ". Esto es la suma del tuple")


print("Total impreso pero con STR:"+str(totalizador))




for tc in iterableTupleC:


    print(tc)






for l in iterableLista:

    print("Elemento de la lista:", l)



for d in iterableDiccionario:

    print("Nombre en el diccionario", d)

    print("Valor:",iterableDiccionario[d])

árboles de decisión_ BLOQUE 3 curso Cefo. Inteligencia_artificial para la sociedad

 https://app.diagrams.net/          --------->           Es draw.io, pones  draw.io en buscador, es bueno y fácil Tienes que tener cuenta...