13  Jerarquia de variables

def suma_dos_numeros(a: int, b:int) -> int:
    """
    Recibe dos números enteros y regresa un entero
    """

    # print(a+b)
    # c = a + b
    return a + b
suma = suma_dos_numeros(1,2)
suma
3
def suma_un_numero(a:int): # Mala practica tomar variables del contexto
    """Documento la funcion """
    # d = 1
    return a + d
c = -1
suma_un_numero(1)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[26], line 2
      1 c = -1
----> 2 suma_un_numero(1)

Cell In[25], line 4, in suma_un_numero(a)
      2 """Documento la funcion """
      3 # d = 1
----> 4 return a + d

NameError: name 'd' is not defined

#### Tomar una lista de nombres y poner hola a cada persona

nombres = ["Fernando","Luisa","Lili","Laura","Mitsue"]
def saluda_personas(nombres:list=["Fernando","Luisa","Lili","Laura","Mitsue"],
                    saludo:str="hola")-> None:
    for nombre in nombres:
        print(f"{saludo} {nombre}")
saluda_personas(saludo="adios",nombres=["Michele","Sebastian"])
adios Michele
adios Sebastian
saluda_personas(nombres=["Michele","Sebastian"])
hola Michele
hola Sebastian
saluda_personas(saludo="siempre no")
siempre no Fernando
siempre no Luisa
siempre no Lili
siempre no Laura
siempre no Mitsue

Funciones

  1. Pueden aceptar argumentos sin definir
  2. Pueden aceptar variables con un valor predeterminado
  3. Con valores predeterminados, ya no importa el orden
def suma_tres_cadenas(cad1:str,cad2:str,cad3:str) -> str:
    """cad1 es el primer elemento, ...."""
    return cad1 + cad2 + cad3
suma_tres_cadenas("uno","dos","tres")
'unodostres'
suma_tres_cadenas("dos","uno","tres")
'dosunotres'
def documentando_funciones(matriz:str="esto ya no es una matriz"): ## Esto no es documentar
    return matriz  ## esta es una asignacion de valores por default
matriz = documentando_funciones()
type(matriz)
str
documentando_funciones?
Signature: documentando_funciones(matriz: str = 'esto ya no es una matriz')
Docstring: <no docstring>
File:      c:\users\gbv\appdata\local\temp\ipykernel_10928\2245814994.py
Type:      function

Nombres para funciones

Se sugiere usar snake_case

#camelcase
NombreApellido  = "Guillermo Barrios"
nombre_apellido = "Guillermo Barrios"
def leer_nomina():


def LeerNomina(): # casi no se usa


read_excel
read_csv
read_parquet