# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     name: python3
# ---

# + [markdown] id="view-in-github" colab_type="text"
# <a href="https://colab.research.google.com/github/AlexPGonzalezR/course_python/blob/main/Sesion4_curso_python.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>

# + id="P9eEy6wKlNrB"


# + colab={"base_uri": "https://localhost:8080/", "height": 35} id="umtgvSafS2Vs" outputId="bc4e56a1-58d3-4076-c142-5696b0b46050"
lista = ["uno ", "dos ", "tres"]
cad = ""
for ele in lista:
    cad += ele
cad

# + colab={"base_uri": "https://localhost:8080/"} id="fnNEQuj0YrSa" outputId="182e363f-4532-422c-d4e6-4ba83f119d86"
x = 0
y = 3
while x < y:
    print(x)
    x += 1

# + colab={"base_uri": "https://localhost:8080/"} id="5f7q2o3uc0mS" outputId="e2e7c658-68e8-458e-e6f9-4a99a39280ba"
x = 0
y = 3
while x < y:
    print (x)
    x+=1
    if x == 2:
      break
    else:
      print ("x es igual a 2")


# + colab={"base_uri": "https://localhost:8080/"} id="wXORyoO7g1-a" outputId="14eba78d-1f0a-4e4a-92ff-e6fa04113302"
def funcion_mensaje():
  print("Mi primera función")
  print("Estoy aprendiendo")
funcion_mensaje()


# + colab={"base_uri": "https://localhost:8080/"} id="fXsHrd_rkOtd" outputId="783b6a99-68e4-4e36-cda0-6e2ed37c88f3"
def funcion_mensaje(nombre_cliente):
  print("Mi primera función")
  print("Saludando al cliente:",nombre_cliente)
cliente1="<NAME>"
funcion_mensaje(cliente1)
cliente2="<NAME>"
funcion_mensaje(cliente2)


# + colab={"base_uri": "https://localhost:8080/"} id="evlQoRT-mGSQ" outputId="2993c537-7ff0-45a6-8eed-f647e7dc351e"
def funcion_mensaje(nombre_cliente):
  print("Mi primera función")
  print("Saludando al cliente:",nombre_cliente)

lista_nombres=["<NAME>", "<NAME>", "<NAME>", "<NAME>"]
edad=[28, 33, 23, 25]
Picture={"nombres_clientes":lista_nombres, "edad":edad}
print(Picture)

for nombre in Picture["nombres_clientes"]:
  funcion_mensaje(nombre)

for nombre in Picture["edad"]:
  funcion_mensaje(nombre)


# + id="yv4Kcz_GlRL0" colab={"base_uri": "https://localhost:8080/"} outputId="a0f12952-804d-4757-8c3d-501dcfc7b3b0"
def resta(a, b):
  return a - b

resta(30, 20)

# + id="iG8INT7SmW9w"


# + id="iJFzBMhol5k9" colab={"base_uri": "https://localhost:8080/", "height": 35} outputId="f50d9a98-ca75-459e-9397-a28d1004b7c1"
def resta(a, b):
  resta=a-b #Integer
  mensaje="La resta es: "+ str(resta)
  return mensaje
resta(5,3)


# + id="WjzPXfmanoH2" colab={"base_uri": "https://localhost:8080/"} outputId="db9d205b-65f5-4390-f46b-8122a4a4d477"
def resta(a, b):
  resta=a-b #Integer
  mensaje="La resta es: "+ str(resta)
  return resta

variable_resta=resta(5,6)
print(variable_resta)
valor_esperado=variable_resta+10
print(valor_esperado)


# + id="_yhCHfMXq0XP" colab={"base_uri": "https://localhost:8080/"} outputId="7915a49e-5f14-4d05-f1aa-69daf7b6a95e"
class Persona(object):
    """Clase que representa una Persona"""

    def __init__(self, cedula, nombre, apellido, sexo):
        """Constructor de clase Persona"""
        self.cedula = cedula
        self.nombre = nombre
        self.apellido = apellido
        self.sexo = sexo


    def __str__(self):
        """Devuelve una cadena representativa de Persona"""
        return "%s: %s, %s %s, %s." % (
            self.__doc__[25:34], str(self.cedula), self.nombre, 
            self.apellido, self.getGenero(self.sexo))

    def hablar(self, mensaje):
        """Mostrar mensaje de saludo de Persona"""
        return mensaje

    def getGenero(self):
        """Mostrar el genero de la Persona"""
        genero = ('Masculino','Femenino')
        if self.sexo == "M":
            return genero[0]
        elif self.sexo == "F":
            return genero[1]
        else:
            return "Desconocido"

variable_persona = Persona(71752728,"Juan","Salinas","M")            
print(variable_persona.getGenero())


# + id="NzNTMF2v9lCT" colab={"base_uri": "https://localhost:8080/"} outputId="a474e7fd-ea03-43cf-a297-870b1b61f549"
def funcion():
 return "Hola Mundo"
frase = funcion() 
print (frase)


# + id="Dib-MypnB1-X" colab={"base_uri": "https://localhost:8080/"} outputId="8d15cd39-33ba-433a-c6b3-4f8397c62ecb"
def saludar(nombre, mensaje='Hola'):#Parametros por omision
 print (mensaje, nombre)
saludar('Pepe Grillo') # Imprime: Hola Pepe Grillo


# + id="_7eLc1uLKNT_" colab={"base_uri": "https://localhost:8080/"} outputId="96022004-08c5-440e-e873-eb26786817b9"
def saludar(nombre, mensaje='Hola'):#Keywords como parámetros
 print (mensaje, nombre) 
saludar(mensaje="Buen día", nombre="Juancho")


# + id="YtqCWgJPLCG3" colab={"base_uri": "https://localhost:8080/"} outputId="2c55eda0-8614-4e56-b852-e82be584d418"
def recorrer_parametros_arbitrarios(parametro_fijo, *arbitrarios):
 print (parametro_fijo)
 # Los parámetros arbitrarios se corren como tuplas
 for argumento in arbitrarios:
  print (argumento)
recorrer_parametros_arbitrarios('Fixed', 'arbitrario 1', 'arbitrario 2',
 'arbitrario 3')


# + id="26XRJMLIeuDe" outputId="8db36fe4-effe-45bd-bf1b-0ec736bae35b" colab={"base_uri": "https://localhost:8080/"}
def recorrer_parametros_arbitrarios(parametro_fijo, *arbitrarios, **kwords):  
  print (parametro_fijo)
  for argumento in arbitrarios:
    print (argumento)
# Los argumentos arbitrarios tipo clave, se recorren como los diccionarios
  for clave in kwords:
    print ("El valor de", clave, "es", kwords[clave])
recorrer_parametros_arbitrarios("Fixed", "arbitrario 1", "arbitrario 2",
"arbitrario 3", clave1="valor uno",
clave2="valor dos")


# + id="p0dzW5JzfgkW" outputId="6df7b025-3ce2-418e-c978-dffe5da3e810" colab={"base_uri": "https://localhost:8080/"}
def calcular(importe, descuento):
  return importe - (importe * descuento / 100)
datos = [1500, 10]
print (calcular(*datos))


# + id="d-gAfkNCgJ-r" outputId="79f63981-8de3-47ff-9c43-9cc4fc107c52" colab={"base_uri": "https://localhost:8080/"}
def calcular(importe, descuento):
  return importe - (importe * descuento / 100)
datos = {"descuento": 10, "importe": 1500}
print (calcular(**datos))


# + id="5jKJnCWsgn7C"
def funcion():
  return "<NAME>"
def saludar(nombre, mensaje='Hola'):
  print (mensaje, nombre)
  print (mi_funcion())


# + id="sEgyFQrShVJ9" outputId="9ba62538-0170-465a-bec8-afd75ce7ce84" colab={"base_uri": "https://localhost:8080/"}
def funcion():
  return "<NAME>"
def llamada_de_retorno(func=""):
#"""Llamada de retorno a nivel global"""
  return globals()[func]()
print (llamada_de_retorno("funcion"))
# Llamada de retorno a nivel local
nombre_de_la_funcion = "funcion"
print (locals()[nombre_de_la_funcion]())


# + id="hl2W6Q0zhzty" outputId="527b1203-c29a-4a3f-f315-bbe19d726c41" colab={"base_uri": "https://localhost:8080/"}
def funcion(nombre):
  return "Hola " + nombre
def llamada_de_retorno(func=""):
#"""Llamada de retorno a nivel global"""
  return globals()[func]("Laura")
print (llamada_de_retorno("funcion"))
# Llamada de retorno a nivel local
nombre_de_la_funcion = "funcion"
print (locals()[nombre_de_la_funcion]("Facundo"))

StarcoderdataJupyterScriptsDedupFiltered