0% encontró este documento útil (0 votos)
35 vistas148 páginas

Python 1

El documento explica la diferencia entre librerías y paquetes en Python, donde una librería es un conjunto de herramientas y un paquete es una colección de módulos organizados. Se proporciona un ejemplo de cómo crear un paquete para manejar criptomonedas y cómo definir y usar funciones en diferentes archivos. Además, se discuten conceptos como el uso de 'return' en funciones y la importancia de las comillas en cadenas de texto.

Cargado por

dantberned
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
35 vistas148 páginas

Python 1

El documento explica la diferencia entre librerías y paquetes en Python, donde una librería es un conjunto de herramientas y un paquete es una colección de módulos organizados. Se proporciona un ejemplo de cómo crear un paquete para manejar criptomonedas y cómo definir y usar funciones en diferentes archivos. Además, se discuten conceptos como el uso de 'return' en funciones y la importancia de las comillas en cadenas de texto.

Cargado por

dantberned
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

📌 1.

Librería

Una librería es un conjunto de módulos que ofrecen funciones listas para usar. Puede estar
formada por uno o varios paquetes.

Ejemplo:

 NumPy → Es una librería para matemáticas y arreglos numéricos.


 Requests → Es una librería para hacer peticiones HTTP.

Cuando instalas una librería con pip install requests, en realidad estás instalando un
paquete llamado requests.

📌 2. Paquete

Un paquete es una colección de módulos organizados en carpetas. Un paquete es


básicamente una carpeta con varios archivos .py y un archivo especial llamado
__init__.py (que indica que es un paquete).

Ejemplo de estructura de un paquete llamado mi_paquete:

mi_paquete/
│── __init__.py # Indica que es un paquete
│── modulo1.py # Un módulo con funciones
│── modulo2.py # Otro módulo

Puedes importarlo así:

import mi_paquete.modulo1

📌 Diferencia clave

✅ Librería → Colección de herramientas (puede ser solo un archivo o muchos paquetes).


✅ Paquete → Conjunto organizado de módulos dentro de una carpeta.

Ejemplo:

 requests es una librería que contiene varios paquetes y módulos.


 bs4 (BeautifulSoup 4) es un paquete dentro de la librería beautifulsoup4.
 🔹 ¿Cuándo usar un paquete?

 ✅ Si tienes varias funciones relacionadas y quieres organizarlas bien.


✅ Si estás desarrollando algo grande (por ejemplo, un bot, una API o una estrategia
de trading).
✅ Si quieres reutilizar tu código sin copiarlo una y otra vez.
 Crear un paquete en Python es útil cuando quieres organizar mejor tu código,
reutilizarlo en varios proyectos o compartirlo con otros.

Ejemplo: Un paquete para manejar criptomonedas

Vamos a crear un paquete llamado cripto_utils que tendrá funciones para:


✔ Obtener el precio de Bitcoin.
✔ Convertir precios a otra moneda.

📌 Estructura del paquete:

│── __init__.py # Indica que es un paquete


│── precios.py # Funciones para obtener precios
│── conversion.py # Funciones para convertir monedas

Paso 1: Crear los archivos

1 precios.py (para obtener el precio de Bitcoin)


📌 1️⃣

import requests
from bs4 import BeautifulSoup

def obtener_precio_bitcoin():
url = "https://coinmarketcap.com/currencies/bitcoin/"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)

if response.status_code == 200:
soup = BeautifulSoup(response.text, "html.parser")
price_tag = soup.find("span", class_="sc-d1ede7e3-0 fsQm gRpLMW")
return price_tag.text if price_tag else "No se encontró el
precio"
else:
return "Error al obtener el precio"

📌 2️⃣conversion.py (para convertir el precio a otra moneda)


def convertir_a_euros(precio_usd, tasa_cambio=0.92):
return round(precio_usd * tasa_cambio, 2)

def convertir_a_pesos(precio_usd, tasa_cambio=17.5):


return round(precio_usd * tasa_cambio, 2)

📌 3️⃣__init__.py (para importar todo junto)

from .precios import obtener_precio_bitcoin


from .conversion import convertir_a_euros, convertir_a_pesos

Paso 2: Usar el paquete en otro script

Podemos usar nuestro paquete en otro archivo, por ejemplo, app.py:

import cripto_utils

precio = cripto_utils.obtener_precio_bitcoin()
print(f"Precio de Bitcoin: {precio}")

usd = 500
print(f"{usd} USD en euros: {cripto_utils.convertir_a_euros(usd)}€")
print(f"{usd} USD en pesos: {cripto_utils.convertir_a_pesos(usd)} MXN")

Paso 3: Ejecutar el código

Ejecuta app.py y verás los resultados.

🔹 Beneficios de hacer paquetes

✔ Código ordenado y reutilizable.


✔ Fácil de importar en varios proyectos.
✔ Posibilidad de compartirlo con otros.
FUNCIONES

1. Definir una función

Usamos def para definir una función.

def saludar():
print("¡Hola, bienvenido a Python!")

Para llamarla, solo escribimos su nombre:

saludar() # Salida: ¡Hola, bienvenido a Python!

🔹 1 Llamar una función en el mismo script

Si defines una función en un archivo Python, puedes llamarla en ese mismo archivo:

📌 Ejemplo: script.py

# Definir la función
def saludar():
print("¡Hola, bienvenido a Python!")

# Llamar la función
saludar()

📌 Salida al ejecutar el script:

¡Hola, bienvenido a Python!

🔹 2 Llamar una función desde otro archivo

Si tienes un archivo con funciones (mis_funciones.py), puedes importarlas en otro


archivo.

📌 Ejemplo 1: Archivo con la función (mis_funciones.py)

def saludar(nombre):
print(f"¡Hola, {nombre}!")

📌 Ejemplo 2: Llamar la función desde otro script (main.py)

import mis_funciones # Importamos el archivo

mis_funciones.saludar("Carlos") # Llamamos la función

📌 Salida:
¡Hola, Carlos!

🔹 3 Importar solo una función en vez de todo el archivo

Si solo quieres importar una función específica, usa:

from mis_funciones import saludar

saludar("Ana") # Salida: ¡Hola, Ana!

🔹 4️⃣ Importar y renombrar una función

Si quieres cambiar el nombre al importarla:

from mis_funciones import saludar as saludo_personalizado

saludo_personalizado("Luis") # Salida: ¡Hola, Luis!

🔹 5 Importar todas las funciones de un script

Puedes importar todo con *, pero no es recomendable en proyectos grandes.

from mis_funciones import *


saludar("Pedro") # Salida: ¡Hola, Pedro!

🔥 Resumen

✅ Puedes llamar una función en el mismo script donde la defines.


✅ Puedes definir funciones en un archivo (.py) y usarlas en otro con import.
✅ Puedes importar funciones específicas con from archivo import funcion.

¡Genial! Vamos a hacer un ejercicio práctico con funciones en varios archivos.

🔹 Ejercicio: Crear y usar funciones en diferentes archivos

📌 Objetivo:
1 Crear un archivo con funciones útiles.
1️⃣
2️⃣Importarlas en otro archivo y usarlas.
📌 Paso 1: Crear un archivo con funciones (utilidades.py)

Crea un archivo llamado utilidades.py y copia este código:

# utilidades.py

def saludar(nombre):
"""Devuelve un saludo personalizado."""
return f"¡Hola, {nombre}! Bienvenido a Python."

def sumar(a, b):


"""Suma dos números y devuelve el resultado."""
return a + b

def es_par(numero):
"""Devuelve True si el número es par, False si es impar."""
return numero % 2 == 0

📌 Paso 2: Crear otro archivo para usar las funciones ( main.py)

Ahora, crea un archivo main.py y copia este código:

# Importamos las funciones desde el archivo utilidades.py


import utilidades

# Usamos la función saludar


mensaje = utilidades.saludar("Carlos")
print(mensaje)

# Usamos la función sumar


resultado = utilidades.sumar(10, 5)
print(f"La suma de 10 + 5 es: {resultado}")

# Usamos la función es_par


numero = 8
if utilidades.es_par(numero):
print(f"{numero} es un número par.")
else:
print(f"{numero} es un número impar.")

📌 Paso 3: Ejecutar el código

Abre la terminal o consola y ejecuta el archivo main.py:

python main.py

📌 Salida esperada:

¡Hola, Carlos! Bienvenido a Python.


La suma de 10 + 5 es: 15
8 es un número par.
🔥 Bonus: Importar solo funciones específicas

Si en main.py solo necesitas algunas funciones, puedes hacer esto:

from utilidades import saludar, sumar

print(saludar("Ana"))
print(f"La suma de 3 + 7 es: {sumar(3, 7)}")

💡 ¡Listo! Ahora ya sabes cómo crear funciones en un archivo y usarlas en otro.


Si quieres hacer otro ejercicio más avanzado, dime. 🚀

4o

Dijiste:
numero % 2 == 0, esto para que es??

ChatGPT dijo:

Esa expresión:

numero % 2 == 0

se usa para determinar si un número es par o impar.

🔹 ¿Cómo funciona?

% es el operador módulo, que devuelve el resto de una división.

📌 Ejemplo de módulo (%):

print(10 % 2) # Salida: 0 (porque 10 ÷ 2 = 5 y sobra 0)


print(7 % 2) # Salida: 1 (porque 7 ÷ 2 = 3 y sobra 1)
print(9 % 2) # Salida: 1 (porque 9 ÷ 2 = 4 y sobra 1)

🔹 Usarlo para saber si un número es par o impar

 Si el resto es 0, significa que el número es par.


 Si el resto es 1, significa que el número es impar.

📌 Ejemplo en código:
def es_par(numero):
return numero % 2 == 0

print(es_par(10)) # True (es par)


print(es_par(7)) # False (es impar)

🔹 Ejemplo con if
numero = 15

if numero % 2 == 0:
print(f"{numero} es un número par.")
else:
print(f"{numero} es un número impar.")

📌 Salida:

15 es un número impar.

🔥 Resumen

✅ % obtiene el resto de una división.


✅ numero % 2 == 0 → Si el resto es 0, el número es par.
✅ numero % 2 == 1 → Si el resto es 1, el número es impar.

💡 ¿Quieres hacer más ejercicios con esto? 🚀

¿Va a dividir el número que uno ingresa como argumento?

Sí, exactamente. El operador % (módulo) divide el número que ingresas como argumento y
devuelve el resto de la división.

🔹 Ejemplo paso a paso con un número par

Si llamamos la función con numero = 10:

10 % 2 # Esto divide 10 entre 2

🔹 Cálculo:

10 ÷ 2 = 5 (sin decimales, la división es exacta)


Resto = 0

✅ Como el resto es 0, 10 es par.

📌 Código en Python:

print(10 % 2 == 0) # True (porque el resto es 0)

🔹 Ejemplo con un número impar

Si llamamos la función con numero = 7:

7 % 2 # Esto divide 7 entre 2

🔹 Cálculo:

7 ÷ 2 = 3 (pero 3 × 2 = 6, falta 1)
Resto = 1

❌ Como el resto es 1, 7 es impar.

📌 Código en Python:

print(7 % 2 == 0) # False (porque el resto es 1)

🔥 Prueba tú mismo

Si quieres verlo en acción, prueba este código en Python:

numero = int(input("Ingresa un número: "))

if numero % 2 == 0:
print(f"{numero} es un número par.")
else:
print(f"{numero} es un número impar.")

📌 Ejemplo de ejecución:

Ingresa un número: 9
9 es un número impar.

✅ Resumen
✔ numero % 2 == 0 → Divide el número entre 2 y revisa el resto.
✔ Si el resto es 0, el número es par.
✔ Si el resto es 1, el número es impar.

🔹 ¿Quieres que hagamos más ejercicios con % o con otro tema? 🚀

4o

Return para que sirve??

return se usa en una función para devolver un valor y terminar la ejecución de la función.

📌 Ejemplo básico
def sumar(a, b):
return a + b # Devuelve la suma de a y b

resultado = sumar(5, 3)
print(resultado) # Salida: 8

📌 Explicación:

 return a + b devuelve la suma.


 Luego, guardamos el resultado en resultado.
 Finalmente, lo imprimimos con print(resultado).

🔹 return vs print

Mucha gente confunde return con print(), pero son diferentes.

def sumar(a, b):


print(a + b) # Solo muestra el resultado, pero no lo devuelve

resultado = sumar(5, 3) # No devuelve nada, solo imprime


print(resultado) # Salida: 8 y luego None

📌 Diferencia clave:

 print() solo muestra el resultado en la pantalla.


 return devuelve el valor para que puedas usarlo después en cálculos o en otras
funciones.
📌 Ejemplo con return en una condición
def es_par(numero):
if numero % 2 == 0:
return True # Devuelve True si es par
return False # Devuelve False si es impar

print(es_par(8)) # Salida: True


print(es_par(7)) # Salida: False

📌 return en funciones múltiples

Una función que devuelve un resultado puede usarse en otra función:

def cuadrado(n):
return n * n

def suma_de_cuadrados(a, b):


return cuadrado(a) + cuadrado(b)

print(suma_de_cuadrados(3, 4)) # 9 + 16 = 25

📌 return puede devolver varios valores

Puedes devolver más de un valor usando una tupla:

def calcular(a, b):


suma = a + b
resta = a - b
return suma, resta # Devuelve dos valores

resultado = calcular(10, 4)
print(resultado) # Salida: (14, 6)

suma_res, resta_res = calcular(10, 4)


print(suma_res) # 14
print(resta_res) # 6

🔥 Resumen

✅ return devuelve un valor desde una función.


✅ A diferencia de print(), return permite reutilizar el valor en otras funciones o
cálculos.
✅ Una función puede devolver varios valores.
✅ Una vez que return se ejecuta, la función se detiene.
🔥 LAS COMILLAS

Las comillas (" ") se usan porque print() necesita una cadena de texto para mostrar en
pantalla.

🔹 Ejemplo sin comillas (incorrecto)


print(La suma de 10 + 5 es: {resultado}) # ❌ Esto dará error

📌 Error:

SyntaxError: invalid syntax

🔹 Razón: Python no entiende texto sin comillas.

🔹 Ejemplo correcto con comillas


resultado = 10 + 5
print(f"La suma de 10 + 5 es: {resultado}")

📌 Salida:

La suma de 10 + 5 es: 15

📌 Explicación:
✅ "Texto" → Se pone entre comillas porque es una cadena (str).
✅ {resultado} → Dentro de las llaves, se inserta el valor de la variable.
✅ f"" → La f antes de las comillas indica que es un f-string, lo que permite
interpolación de variables.

🔥 Otros ejemplos de f-strings


nombre = "Carlos"
edad = 25

print(f"Hola, mi nombre es {nombre} y tengo {edad} años.")

📌 Salida:

Hola, mi nombre es Carlos y tengo 25 años.


✅ Resumen

✔ Las comillas son necesarias para definir texto en Python.


✔ La f antes de las comillas permite insertar variables dentro del texto con {}.
✔ Sin comillas, Python dará error.

¡Claro! Aquí tienes 5 ejercicios prácticos para entender cómo funciona return en Python.
🚀

📌 Ejercicio 1: Retornar la suma de dos números

Crea una función que tome dos números y devuelva su suma.

🔹 Código:

def sumar(a, b):


return a + b # Devuelve la suma

resultado = sumar(10, 5)
print(f"La suma de 10 + 5 es: {resultado}") # Salida: 15

📌 Explicación:

 La función sumar(a, b) devuelve a + b.


 Luego guardamos el resultado en la variable resultado.
 Finalmente, imprimimos el resultado usando un f-string.

📌 Ejercicio 2: Comprobar si un número es par o impar

Escribe una función que reciba un número y devuelva True si es par o False si es impar.

🔹 Código:

def es_par(numero):
return numero % 2 == 0 # Devuelve True si es par, False si es impar

print(es_par(8)) # Salida: True


print(es_par(7)) # Salida: False

📌 Explicación:

 numero % 2 == 0 revisa si el número es divisible entre 2.


 La función devuelve True si es par y False si es impar.
📌 Ejercicio 3: Retornar el mayor de dos números

Crea una función que reciba dos números y devuelva el mayor.

🔹 Código:

def mayor(a, b):


if a > b:
return a # Devuelve 'a' si es mayor
return b # Devuelve 'b' si es mayor o iguales

print(mayor(10, 20)) # Salida: 20


print(mayor(30, 15)) # Salida: 30

📌 Explicación:

 Si a es mayor, se devuelve a.
 Si no, se devuelve b.

📌 Ejercicio 4: Calcular el factorial de un número

El factorial de un número n es el producto de n × (n-1) × (n-2) × ... × 1.

🔹 Código:

def factorial(n):
resultado = 1
for i in range(1, n + 1):
resultado *= i # Multiplica resultado por cada número
return resultado # Devuelve el factorial

print(factorial(5)) # Salida: 120


print(factorial(3)) # Salida: 6

📌 Explicación:

 Se inicializa resultado en 1.
 Se multiplica por cada número del 1 al n.
 Se retorna el resultado final.

📌 Ejercicio 5: Retornar múltiples valores

Crea una función que reciba dos números y devuelva la suma y la resta.

🔹 Código:
def operaciones(a, b):
suma = a + b
resta = a - b
return suma, resta # Devuelve dos valores

resultado_suma, resultado_resta = operaciones(10, 5)

print(f"Suma: {resultado_suma}") # Salida: 15


print(f"Resta: {resultado_resta}") # Salida: 5

📌 Explicación:

 La función devuelve dos valores.


 Los almacenamos en resultado_suma y resultado_resta.

🔥 Desafío Extra

✍ Crea una función que reciba un nombre y una edad, y devuelva un mensaje como:

"Hola, mi nombre es Carlos y tengo 25 años."

🔹 Prueba hacerlo y dime si necesitas ayuda! 🚀

4o

Dijiste:
for i=1 in range(1,n+1) como funciona esto ?

ChatGPT dijo:

Tu sintaxis tiene un error. Lo correcto en Python para un for es:

for i in range(1, n+1):

Voy a explicarlo paso a paso. 👇

📌 Explicación de for i in range(1, n+1):

Este for significa:


✅ "Repite el bloque de código para cada valor de i, comenzando en 1 hasta n."

📌 Ejemplo con n = 5:

n = 5

for i in range(1, n+1):


print(i)

📌 Salida:

1
2
3
4
5

🔹 ¿Cómo funciona range(1, n+1)?

🔸 range(inicio, fin) genera una secuencia de números desde inicio hasta fin - 1.
🔸 n+1 se usa para que el for incluya n.

📌 Ejemplo con range(1, 6) (cuando n = 5)

range(1, 6) # Genera: [1, 2, 3, 4, 5]

📌 Ejemplo con for en un cálculo

Usémoslo para calcular la suma de los primeros n números.

n = 5
suma = 0

for i in range(1, n+1):


suma += i # Suma los números del 1 al n

print(f"La suma de 1 a {n} es: {suma}")

📌 Salida:

La suma de 1 a 5 es: 15

🔹 Explicación: 1 + 2 + 3 + 4 + 5 = 15.

📌 Uso en un factorial (n!)


def factorial(n):
resultado = 1
for i in range(1, n+1):
resultado *= i # Multiplica cada número hasta n
return resultado

print(factorial(5)) # Salida: 120


📌 Cómo funciona?

1 × 2 × 3 × 4 × 5 = 120

✅ Resumen

✔ for i in range(1, n+1): → Recorre los números desde 1 hasta n.


✔ range(inicio, fin) → El fin no se incluye (por eso usamos n+1).
✔ Se usa para iteraciones, cálculos matemáticos y recorrer listas.

💡 ¿Quieres hacer más ejercicios con for? 🚀

4o

Dijiste:
aqui coloca los datos en resultado *= i y return se encarga de dar la informacion??

ChatGPT dijo:

¡Exacto! Vamos a desglosarlo paso a paso.

📌 Explicación de resultado *= i y return en el factorial


def factorial(n):
resultado = 1 # Inicializa el resultado en 1
for i in range(1, n+1): # Itera de 1 a n
resultado *= i # Multiplica resultado por i en cada ciclo
return resultado # Devuelve el resultado final

print(factorial(5)) # Salida: 120

🔹 Paso a paso de resultado *= i

📌 Cuando n = 5, el for hace esto:


🔹 Inicialización:

resultado = 1

🔹 Iteraciones del for:

resultado después
Iteración i resultado *= i
de la operación

1ª vuelta 1 1 * 1 1
resultado después
Iteración i resultado *= i
de la operación

2ª vuelta 2 1 * 2 2

3ª vuelta 3 2 * 3 6

4ª vuelta 4 6 * 4 24

5ª vuelta 5 24 * 5 120

✅ Al final, resultado = 120, que es 5! (5 factorial).

🔹 ¿Qué hace return resultado?

📌 Cuando el for termina, el return se encarga de:

1. Finalizar la función.
2. Devolver el valor calculado (resultado).
3. Permitir que el valor se use en otras partes del código.

🔹 Ejemplo:

fact_5 = factorial(5) # Guarda el resultado en una variable


print(f"El factorial de 5 es {fact_5}") # Usa el resultado

📌 Salida:

El factorial de 5 es 120

✅ Resumen

✔ resultado *= i → Multiplica resultado por i en cada vuelta.


✔ return resultado → Devuelve el valor final calculado.
✔ La función factorial(n) se puede usar en otras partes del código gracias a return.

El operador *= en Python es un operador de asignación compuesta que significa:

x *= y # Es lo mismo que: x = x * y

Básicamente, multiplica el valor de x por y y guarda el resultado en x.


📌 Ejemplo 1: Multiplicación acumulativa
numero = 5
numero *= 2 # Es lo mismo que: numero = numero * 2
print(numero) # Salida: 10

🔹 Explicación:

 numero = 5
 numero *= 2 → numero = 5 * 2 = 10

📌 Ejemplo 2: Uso en un for para calcular factorial


def factorial(n):
resultado = 1 # Empezamos con 1
for i in range(1, n+1): # Iteramos desde 1 hasta n
resultado *= i # Multiplicamos resultado por i
return resultado # Devolvemos el resultado

print(factorial(5)) # Salida: 120

🔹 Cómo funciona resultado *= i en cada vuelta del for?

resultado
Iteración i resultado *= i después de la
operación

1ª vuelta 1 1 * 1 1

2ª vuelta 2 1 * 2 2

3ª vuelta 3 2 * 3 6

4ª vuelta 4 6 * 4 24

5ª vuelta 5 24 * 5 120

✅ Al final, resultado = 120 (5 factorial).

📌 Otros operadores de asignación compuesta

🔹 Además de *= (multiplicación), existen otros operadores similares:

Operador Equivalente a Ejemplo

+= x = x + y x += 5 → x = x + 5
Operador Equivalente a Ejemplo

-= x = x - y x -= 3 → x = x - 3

*= x = x * y x *= 2 → x = x * 2

/= x = x / y x /= 4 → x = x / 4

//= x = x // y x //= 2 → x = x // 2

%= x = x % y x %= 3 → x = x % 3

**= x = x ** y x **= 2 → x = x ** 2

✅ Resumen

✔ x *= y → Multiplica x por y y guarda el resultado en x.


✔ Se usa para cálculos acumulativos, como factoriales o potencias.
✔ Existen otros operadores similares como +=, -=, /=, etc.

💡 ¿Quieres hacer otro ejercicio con return y for? 🚀

4o

Dijiste:
si

ChatGPT dijo:

¡Genial! Aquí tienes 3 ejercicios prácticos usando return y for. 🚀

📌 Ejercicio 1: Calcular la suma de los primeros n números

✍ Crea una función que reciba un número n y devuelva la suma de los números de 1 a
n.

🔹 Código:

def suma_numeros(n):
suma = 0 # Inicializamos suma en 0
for i in range(1, n+1): # Iteramos desde 1 hasta n
suma += i # Sumamos cada número
return suma # Devolvemos el resultado
print(suma_numeros(5)) # Salida: 15 (1+2+3+4+5)
print(suma_numeros(10)) # Salida: 55 (1+2+...+10)

🔹 Explicación:

 Se inicializa suma = 0.
 En cada iteración, sumamos i al total.
 Al final, return devuelve el resultado.

📌 Ejercicio 2: Contar cuántos números pares hay en un rango

✍ Crea una función que reciba dos números inicio y fin, y devuelva cuántos
números pares hay en ese rango.

🔹 Código:

def contar_pares(inicio, fin):


contador = 0 # Inicializamos el contador en 0
for i in range(inicio, fin + 1): # Iteramos desde inicio hasta fin
if i % 2 == 0: # Si es par
contador += 1 # Aumentamos el contador
return contador # Devolvemos el resultado

print(contar_pares(1, 10)) # Salida: 5 (pares: 2, 4, 6, 8, 10)


print(contar_pares(3, 15)) # Salida: 6 (pares: 4, 6, 8, 10, 12, 14)

🔹 Explicación:

 Usamos if i % 2 == 0 para verificar si un número es par.


 Si es par, aumentamos el contador.
 Al final, return contador devuelve la cantidad de pares encontrados.

📌 Ejercicio 3: Generar una lista de múltiplos de un número

✍ Crea una función que reciba un número n y devuelva una lista con sus primeros 5
múltiplos.

🔹 Código:

def multiplos(n):
lista = [] # Creamos una lista vacía
for i in range(1, 6): # Iteramos 5 veces
lista.append(n * i) # Agregamos cada múltiplo a la lista
return lista # Devolvemos la lista

print(multiplos(3)) # Salida: [3, 6, 9, 12, 15]


print(multiplos(7)) # Salida: [7, 14, 21, 28, 35]
🔹 Explicación:

 Creamos una lista vacía para guardar los múltiplos.


 Usamos append(n * i) para agregar cada múltiplo a la lista.
 return lista devuelve todos los múltiplos generados.

🔥 Desafío Extra

✍ Crea una función que reciba un número n y devuelva una lista con todos los
números impares hasta n.
🔹 Ejemplo:

numeros_impares(10) # Salida: [1, 3, 5, 7, 9]

💡 ¡Intenta hacerlo y dime si necesitas ayuda! 🚀

¡Genial! Aquí tienes 3 ejercicios prácticos para entender mejor *=. 🚀

📌 Ejercicio 1: Doblar un número varias veces

✍ Crea una función que reciba un número y lo doble (*2) varias veces.

🔹 Código:

def doblar_n_veces(numero, veces):


for i in range(veces): # Repite la multiplicación "veces" veces
numero *= 2 # Multiplica el número por 2 en cada iteración
return numero # Devuelve el resultado

print(doblar_n_veces(3, 4)) # Salida: 48 (3 → 6 → 12 → 24 → 48)


print(doblar_n_veces(5, 3)) # Salida: 40 (5 → 10 → 20 → 40)

🔹 Explicación:

 Si veces = 4, se multiplica el número por 2 cuatro veces.


 numero *= 2 equivale a numero = numero * 2 en cada vuelta.

📌 Ejercicio 2: Calcular potencias

✍ Crea una función que calcule base^exponente usando *=.

🔹 Código:
def potencia(base, exponente):
resultado = 1 # Empezamos en 1
for _ in range(exponente): # Repetimos "exponente" veces
resultado *= base # Multiplicamos por la base en cada iteración
return resultado # Devolvemos el resultado

print(potencia(2, 5)) # Salida: 32 (2^5 = 2*2*2*2*2)


print(potencia(3, 3)) # Salida: 27 (3^3 = 3*3*3)

🔹 Explicación:

 resultado empieza en 1.
 En cada iteración, se multiplica resultado por base.
 Ejemplo con potencia(2, 5):

1 × 2 = 2
2 × 2 = 4
4 × 2 = 8
8 × 2 = 16
16 × 2 = 32

📌 También podríamos usar **, pero esto ayuda a practicar *=.

📌 Ejercicio 3: Calcular el producto de una lista

✍ Crea una función que multiplique todos los números de una lista.

🔹 Código:

def producto_lista(lista):
resultado = 1 # Empezamos con 1
for num in lista: # Recorremos la lista
resultado *= num # Multiplicamos cada número
return resultado # Devolvemos el resultado final

print(producto_lista([2, 3, 4])) # Salida: 24 (2*3*4)


print(producto_lista([5, 6, 7])) # Salida: 210 (5*6*7)

🔹 Explicación:

 resultado empieza en 1.
 Se multiplica por cada número en la lista.
 Ejemplo con [2, 3, 4]:

1 × 2 = 2
2 × 3 = 6
6 × 4 = 24
🔥 Desafío Extra

✍ Crea una función que reciba un número y devuelva el resultado de multiplicarlo


por 3, luego por 4, luego por 5, etc., hasta n.

📌 Ejemplo:

multiplicar_secuencia(2, 5) # Salida: 2 * 3 * 4 * 5 = 120

💡 ¡Intenta resolverlo y dime si necesitas ayuda! 🚀

LA IDENTACION EN PYTHON

El problema era la identación. En Python, la indentación define qué código pertenece a qué
bloque.

Error en tu código:

def factorial(n):
resultado = 1
for i in range(1, n+1):
resultado *= i
return resultado # 🚨 Aquí la función termina

print(factorial(3))
( print nunca se ejecuta porque está al mismo nivel que return)

📌 Después del return, cualquier código dentro de la función no se ejecuta. La


indentación es muy importante en python.

📌 Solución correcta

La llamada a la función (print(factorial(3))) debe ir fuera de la función:

def factorial(n):
resultado = 1
for i in range(1, n+1):
resultado *= i
return resultado # ✅ Devuelve el resultado y la función termina

# ✅ Llamamos a la función fuera de su definición


print(factorial(3)) # Salida: 6
✅ Regla clave:
👉 Todo lo que está dentro de la función debe estar indentado correctamente.
👉 Nada después de return se ejecuta.

COMO FUNCIONA LA VARIABLE TEMPORAL


📌 Funcionamiento de resultado

def factorial(n):
resultado = 1 # 🟢 Inicializamos resultado en 1
for i in range(1, n+1): # 🔄 Iteramos desde 1 hasta n
resultado *= i # 📌 Multiplicamos resultado por i en cada vuelta
return resultado # 🚀 Devolvemos el resultado final

 resultado empieza en 1 porque, si lo inicializáramos en 0, cualquier multiplicación daría


0.
 El for multiplica resultado por cada número desde 1 hasta n.
 Cada iteración actualiza el valor de resultado.
📌 Ejemplo paso a paso con factorial(4)
print(factorial(4)) # Esperamos 4! = 4 × 3 × 2 × 1 = 24

📌 Cómo cambia resultado en cada iteración:

resultado
Iteración i resultado *= i (resultado = resultado × i)
después

1ª vuelta 1 1 × 1 1

2ª vuelta 2 1 × 2 2

3ª vuelta 3 2 × 3 6

4ª vuelta 4 6 × 4 24

✅ Al final, resultado es 24, que es el factorial de 4 (4!).

📌 Otro ejemplo con factorial(5)

print(factorial(5)) # 5! = 5 × 4 × 3 × 2 × 1 = 120

📌 Cómo cambia resultado en cada iteración:

Iteración i resultado *= i resultado después

1ª vuelta 1 1 × 1 1

2ª vuelta 2 1 × 2 2

3ª vuelta 3 2 × 3 6

4ª vuelta 4 6 × 4 24

5ª vuelta 5 24 × 5 120

✅ Al final, resultado = 120, que es 5!.


📌 Resumen

🔹 resultado empieza en 1 porque si fuera 0, la multiplicación daría siempre 0.


🔹 Cada iteración lo multiplica por el siguiente número (i) hasta llegar a n.
🔹 Al final, resultado contiene el factorial de n y lo devuelve con return.

¿Ejemplos y prueba con más valores? O modificarlo para que funcione sin for? 🚀

Ejemplo 1: Sumar todos los números hasta n

✍ Función que suma todos los números desde 1 hasta n.

🔹 Código:

def suma_hasta(n):
resultado = 0 # Empezamos con 0 porque estamos sumando
for i in range(1, n+1): # Iteramos de 1 a n
resultado += i # Sumamos i a resultado
return resultado # Devolvemos la suma final

print(suma_hasta(5)) # Salida: 15 (1 + 2 + 3 + 4 + 5)
print(suma_hasta(10)) # Salida: 55 (1+2+3+...+10)

🔹 Cómo funciona resultado?

resultado
Iteración i resultado += i (resultado = resultado + i)
después

1ª vuelta 1 0 + 1 1

2ª vuelta 2 1 + 2 3

3ª vuelta 3 3 + 3 6

4ª vuelta 4 6 + 4 10

5ª vuelta 5 10 + 5 15

✅ Resultado final: 15 (la suma de los números del 1 al 5).


📌 Ejemplo 2: Multiplicar todos los números de una lista

✍ Función que multiplica todos los números de una lista.

🔹 Código:

def producto_lista(lista):
resultado = 1 # Empezamos en 1 porque estamos multiplicando
for num in lista: # Recorremos cada número de la lista
resultado *= num # Multiplicamos resultado por num
return resultado # Devolvemos el producto total

print(producto_lista([2, 3, 4])) # Salida: 24 (2*3*4)


print(producto_lista([5, 6, 7])) # Salida: 210 (5*6*7)

🔹 Cómo cambia resultado?

Iteración num resultado *= num resultado después

1ª vuelta 2 1 × 2 2

2ª vuelta 3 2 × 3 6

3ª vuelta 4 6 × 4 24

✅ Resultado final: 24.

📌 Ejemplo 3: Contar cuántos números pares hay en una lista

✍ Función que cuenta cuántos números pares hay en una lista.

🔹 Código:

def contar_pares(lista):
resultado = 0 # Empezamos en 0 porque estamos contando
for num in lista: # Recorremos la lista
if num % 2 == 0: # Si el número es par
resultado += 1 # Aumentamos el contador
return resultado # Devolvemos la cantidad de pares

print(contar_pares([1, 2, 3, 4, 5, 6])) # Salida: 3 (2, 4, 6)


print(contar_pares([7, 8, 10, 13, 15, 18])) # Salida: 3 (8, 10, 18)
🔹 Cómo cambia resultado?

Iteración num num%2 == 0? resultado += 1 (si es par) resultado después


1ª vuelta 1 ❌ No ❌ No suma 0
2ª vuelta 2 ✅ Sí 0 + 1 1
3ª vuelta 3 ❌ No ❌ No suma 1
4ª vuelta 4 ✅ Sí 1 + 1 2
5ª vuelta 5 ❌ No ❌ No suma 2
6ª vuelta 6 ✅ Sí 2 + 1 3

✅ Resultado final: 3 (hay 3 números pares: 2, 4, 6).

🔥 Desafío Extra

✍ Crea una función que cuente cuántos dígitos tiene un número.

📌 Ejemplo:

contar_digitos(12345) # Salida: 5 (porque hay 5 dígitos)

La variable resultado tiene que ir fuera de for o de los bucles

La variable resultado debe ir fuera del for porque queremos que acumule los valores a
lo largo de todas las iteraciones del bucle.

📌 Qué pasa si la declaramos dentro del for?

Si colocamos resultado = 1 dentro del for, la variable se reiniciará en cada iteración,


lo que hará que el cálculo sea incorrecto.

🔹 Ejemplo incorrecto:

def factorial(n):
for i in range(1, n+1):
resultado = 1 # ❌ Se reinicia en cada iteración
resultado *= i # Solo guarda el último valor de i
return resultado # ❌ Error: resultado no acumula los valores

print(factorial(5)) # ❌ No dará 120, sino 5


🔹 Salida incorrecta: 5 en lugar de 120.

📌 ¿Por qué?

 En cada iteración, resultado se reinicia a 1, por lo que solo almacena el último número
de i (5 en este caso).
 No acumula el producto correctamente.

📌 Correcta ubicación de resultado (fuera del for)

🔹 Código correcto:

def factorial(n):
resultado = 1 # ✅ Se inicializa antes del bucle
for i in range(1, n+1):
resultado *= i # ✅ Acumula el producto en cada iteración
return resultado # ✅ Devuelve el resultado correcto

print(factorial(5)) # ✅ Salida correcta: 120

📌 ¿Por qué funciona?

 resultado = 1 se inicializa antes del bucle, por lo que se mantiene en memoria y se


actualiza en cada iteración.
 En cada vuelta del for, resultado se multiplica por el siguiente número de i,
acumulando correctamente el resultado.

✅ Regla general:
Si una variable debe guardar valores acumulativos, inicialízala fuera del for para que no
se reinicie en cada iteración.

🔥 Ejemplo práctico con sumas

🔹 Código incorrecto (reiniciando en el for)

def suma_hasta(n):
for i in range(1, n+1):
resultado = 0 # ❌ Se reinicia en cada vuelta
resultado += i
return resultado # ❌ Solo devuelve el último valor de i

print(suma_hasta(5)) # ❌ Da 5 en lugar de 15

🔹 Código correcto (inicializando fuera del for)


def suma_hasta(n):
resultado = 0 # ✅ Se inicializa antes del bucle
for i in range(1, n+1):
resultado += i # ✅ Acumula la suma correctamente
return resultado

print(suma_hasta(5)) # ✅ Salida correcta: 15

✅ Regla de oro: Si la variable debe acumular valores, debe estar fuera del for para que
no se reinicie en cada iteración. 🚀

i como indice

La letra i, actúa como un índice o contador dentro del for, pero su uso depende del
contexto:

📌 i como índice en un range()

Cuando usas for i in range(...), i funciona como un contador que toma valores en
cada iteración.

🔹 Ejemplo:

for i in range(5): # i tomará los valores 0, 1, 2, 3, 4


print(i)

🔹 Salida:

CopiarEditar
0
1
2
3
4

📌 En este caso, i es un contador automático que empieza en 0 por defecto y se incrementa


hasta 4.

✅ Puedes cambiar el rango, por ejemplo:

for i in range(1, 6): # i tomará 1, 2, 3, 4, 5


print(i)

🔹 Salida:

1
2
3
4
5

📌 i como índice en listas

Si recorres una lista con range(len(lista)), i representa la posición (índice) de cada


elemento.

🔹 Ejemplo:

numeros = [10, 20, 30, 40]


for i in range(len(numeros)): # i será 0, 1, 2, 3
print(f"Índice {i}: {numeros[i]}")

🔹 Salida:

Índice 0: 10
Índice 1: 20
Índice 2: 30
Índice 3: 40

📌 Aquí i indica la posición de cada elemento en la lista.

📌 i como valor en listas (for i in lista)

Si recorres una lista directamente con for i in lista:, i tomará los valores de la lista,
no los índices.

🔹 Ejemplo:

numeros = [10, 20, 30, 40]


for i in numeros: # i tomará los valores 10, 20, 30, 40
print(i)

🔹 Salida:

CopiarEditar
10
20
30
40

📌 Aquí i ya no es un índice, sino que toma los valores directamente de la lista.


📌 Resumen

1️⃣for i in range(n): → i es un contador (índice implícito).


2️⃣for i in range(len(lista)): → i es un índice de la lista.
3️⃣for i in lista: → i es un valor directo de la lista.

Varios ejemplos sobre cómo usar índices con listas en Python.

📌 Método 1: Usar range(len(lista)) para obtener índices y valores

Este es el método clásico para recorrer una lista usando sus índices.

🔹 Ejemplo:

frutas = ["🍎 Manzana", "🍌 Banana", "🍇 Uva", "🍊 Naranja"]

for i in range(len(frutas)): # i será 0, 1, 2, 3


print(f"Índice {i}: {frutas[i]}")

🔹 Salida:

Índice 0: 🍎 Manzana
Índice 1: 🍌 Banana
Índice 2: 🍇 Uva
Índice 3: 🍊 Naranja

✅ Cuándo usarlo?

 Cuando necesitas tanto el índice como el valor.

📌 Método 2: Usar enumerate(lista) (Más Pythonico 🐍)

Con enumerate(lista), obtienes índice y valor en cada iteración sin usar


range(len(lista)).

🔹 Ejemplo:

frutas = ["🍎 Manzana", "🍌 Banana", "🍇 Uva", "🍊 Naranja"]

for indice, fruta in enumerate(frutas):


print(f"Índice {indice}: {fruta}")
🔹 Salida (igual que antes):

Índice 0: 🍎 Manzana
Índice 1: 🍌 Banana
Índice 2: 🍇 Uva
Índice 3: 🍊 Naranja

✅ Ventajas de enumerate()
✔ Más limpio y fácil de leer.
✔ No necesitas usar range(len(lista)).

📌 Método 3: Usar enumerate(lista, start=1) para empezar desde 1

Si quieres que los índices comiencen desde 1 en lugar de 0, puedes usar start=1.

🔹 Ejemplo:

frutas = ["🍎 Manzana", "🍌 Banana", "🍇 Uva", "🍊 Naranja"]

for indice, fruta in enumerate(frutas, start=1):


print(f"Fruta {indice}: {fruta}")

🔹 Salida:

Fruta 1: 🍎 Manzana
Fruta 2: 🍌 Banana
Fruta 3: 🍇 Uva
Fruta 4: 🍊 Naranja

✅ Cuándo usarlo?

 Si los índices deben empezar en 1 en lugar de 0.

📌 Método 4: Modificar una lista usando índices

A veces, necesitas modificar los valores dentro de la lista basándote en los índices.

🔹 Ejemplo: Convertir a mayúsculas

frutas = ["manzana", "banana", "uva", "naranja"]

for i in range(len(frutas)):
frutas[i] = frutas[i].upper() # Convertimos cada elemento a
mayúsculas

print(frutas)
🔹 Salida:

['MANZANA', 'BANANA', 'UVA', 'NARANJA']

✅ Cuándo usarlo?

 Cuando necesitas modificar los valores de la lista directamente.

📌 Método 5: Obtener el índice de un elemento con .index()

Si tienes un valor y quieres saber en qué índice está, usa .index(valor).

🔹 Ejemplo:

frutas = ["🍎 Manzana", "🍌 Banana", "🍇 Uva", "🍊 Naranja"]


indice = frutas.index("🍇 Uva") # Busca el índice de "Uva"
print(f"El índice de 🍇 Uva es: {indice}")

🔹 Salida:

El índice de 🍇 Uva es: 2

✅ Cuándo usarlo?

 Cuando quieres encontrar la posición de un valor específico en la lista.

🔥 Desafío Extra

✍ Crea una función que reciba una lista de números y devuelva los índices de los
números pares.

📌 Ejemplo de uso:

indices_pares([10, 15, 20, 25, 30])

🔹 Salida esperada: [0, 2, 4] (los pares están en esas posiciones).

len() es una función en Python que devuelve la longitud (cantidad de elementos) de una
lista, cadena u otro tipo de colección.
📌 Ejemplo con listas
frutas = ["🍎 Manzana", "🍌 Banana", "🍇 Uva", "🍊 Naranja"]
print(len(frutas)) # 4 elementos en la lista

🔹 Salida:

📌 len(frutas) devuelve 4 porque la lista tiene 4 elementos.

📌 Ejemplo con cadenas (str)

También puedes usar len() para contar cuántos caracteres tiene un texto.

palabra = "Python"
print(len(palabra)) # 6 caracteres

🔹 Salida:

CopiarEditar
6

📌 len("Python") devuelve 6 porque la palabra tiene 6 letras.

📌 Ejemplo con range(len(lista)) en un for

Se usa len(lista) para recorrer todos los índices de una lista.

python
CopiarEditar
frutas = ["🍎 Manzana", "🍌 Banana", "🍇 Uva", "🍊 Naranja"]

for i in range(len(frutas)): # range(4) → 0, 1, 2, 3


print(f"Índice {i}: {frutas[i]}")

🔹 Salida:

yaml
CopiarEditar
Índice 0: 🍎 Manzana
Índice 1: 🍌 Banana
Índice 2: 🍇 Uva
Índice 3: 🍊 Naranja
📌 len(frutas) da 4, por lo que range(len(frutas)) se convierte en range(4),
generando los índices 0, 1, 2, 3.

📌 Resumen

 len(lista) devuelve la cantidad de elementos en una lista.


 len(cadena) devuelve la cantidad de caracteres en un texto.
 range(len(lista)) se usa para recorrer los índices de una lista en un for.
Más ejemplos con len() en diferentes situaciones. 🚀

📌 Ejemplo 1: Contar elementos en una lista


numeros = [10, 20, 30, 40, 50]
print(len(numeros)) # 5 elementos en la lista

🔹 Salida:

✅ len(numeros) devuelve 5 porque hay 5 elementos en la lista.

📌 Ejemplo 2: Contar caracteres en una cadena de texto


mensaje = "Hola, Python!"
print(len(mensaje)) # Contamos los caracteres (incluyendo espacios y
signos)

🔹 Salida:

13

✅ len("Hola, Python!") devuelve 13 porque cuenta todos los caracteres, incluidos


espacios y signos.

📌 Ejemplo 3: Contar palabras en una oración

Para contar palabras, primero dividimos el texto con .split().

frase = "Python es un gran lenguaje"


palabras = frase.split() # Separa las palabras en una lista
print(len(palabras)) # Cantidad de palabras

🔹 Salida:

📌 split() separa la frase en una lista: ["Python", "es", "un", "gran",


"lenguaje"], y len(palabras) cuenta los elementos (palabras).
📌 Ejemplo 4: Usar len() en un for con range()
colores = ["🔴 Rojo", "🟢 Verde", "🔵 Azul"]

for i in range(len(colores)): # range(3) → 0, 1, 2


print(f"Índice {i}: {colores[i]}")

🔹 Salida:

Índice 0: 🔴 Rojo
Índice 1: 🟢 Verde
Índice 2: 🔵 Azul

✅ range(len(colores)) genera los índices 0, 1, 2 para recorrer la lista correctamente.

📌 Ejemplo 5: Validar si una lista está vacía

Podemos usar len() para saber si una lista tiene elementos o está vacía.

mi_lista = []

if len(mi_lista) == 0:
print("La lista está vacía")
else:
print("La lista tiene elementos")

🔹 Salida:

La lista está vacía

✅ Se usa len(mi_lista) == 0 para comprobar si la lista no tiene elementos.

📌 Ejemplo 6: Usar len() con while

Podemos recorrer una lista usando while en lugar de for.

nombres = ["Ana", "Luis", "Carlos"]


i = 0

while i < len(nombres):


print(nombres[i])
i += 1 # Aumentamos el índice

🔹 Salida:

Ana
Luis
Carlos

✅ len(nombres) ayuda a determinar cuántas veces debe ejecutarse el while.

📌 Ejemplo 7: Sumar elementos de una lista con len()

Si queremos calcular el promedio de una lista de números:

numeros = [10, 20, 30, 40, 50]


suma = sum(numeros) # Sumamos los elementos
cantidad = len(numeros) # Contamos cuántos hay
promedio = suma / cantidad # Calculamos el promedio

print(f"El promedio es: {promedio}")

🔹 Salida:

El promedio es: 30.0

✅ len(numeros) ayuda a dividir correctamente la suma entre la cantidad de elementos.

📌 Resumen

✔ len(lista) → Cuenta los elementos en una lista.


✔ len(cadena) → Cuenta los caracteres en un texto.
✔ len(lista) == 0 → Verifica si una lista está vacía.
✔ range(len(lista)) → Se usa para recorrer listas con for.

💡 ¿Te gustaría más ejercicios prácticos con len()? 🚀

📌 Ejercicio 1: Contar la cantidad de vocales en una palabra

✍ Escribe una función que cuente cuántas vocales (a, e, i, o, u) hay en una
palabra.

def contar_vocales(palabra):
vocales = "aeiouAEIOU" # Lista de vocales
contador = 0 # Inicializamos el contador

for letra in palabra: # Recorremos cada letra


if letra in vocales:
contador += 1 # Si es vocal, sumamos 1

return contador

# Prueba la función
palabra = input("Escribe una palabra: ")
print(f"La palabra '{palabra}' tiene {contar_vocales(palabra)} vocales.")

🔹 Ejemplo de salida:

Escribe una palabra: Python


La palabra 'Python' tiene 1 vocales.

✅ Usamos len() indirectamente al contar los caracteres de la palabra.

📌 Ejercicio 2: Verificar si una lista está vacía

✍ Crea una función que reciba una lista y devuelva "Lista vacía" si no tiene
elementos, o "Lista con elementos" si tiene al menos uno.

def verificar_lista(lista):
if len(lista) == 0:
return "Lista vacía"
else:
return "Lista con elementos"

# Pruebas
print(verificar_lista([])) # Lista vacía
print(verificar_lista([1, 2, 3])) # Lista con elementos

🔹 Salida esperada:

Lista vacía
Lista con elementos

📌 Ejercicio 3: Contar palabras en una frase

✍ Escribe una función que cuente cuántas palabras hay en una oración.

def contar_palabras(frase):
palabras = frase.split() # Dividimos la frase en palabras
return len(palabras) # Contamos cuántas palabras hay

# Prueba
frase = input("Escribe una oración: ")
print(f"La oración tiene {contar_palabras(frase)} palabras.")

🔹 Ejemplo de salida:

Escribe una oración: Python es un gran lenguaje


La oración tiene 5 palabras.

✅ Usamos .split() para dividir la frase en palabras y len() para contarlas.


📌 Ejercicio 4: Encontrar la palabra más larga en una lista

✍ Crea una función que reciba una lista de palabras y devuelva la más larga.

def palabra_mas_larga(lista):
if len(lista) == 0:
return "La lista está vacía"

return max(lista, key=len) # `max` con `key=len` encuentra la


palabra más larga

# Prueba
palabras = ["Python", "inteligencia", "datos", "ciencia"]
print(f"La palabra más larga es: {palabra_mas_larga(palabras)}")

🔹 Salida esperada:

La palabra más larga es: inteligencia

✅ Usamos max(lista, key=len) para encontrar la palabra con más caracteres.

📌 Ejercicio 5: Crear un menú interactivo

✍ Crea un programa donde el usuario ingrese nombres y se guarden en una lista.


Cuando el usuario escriba "salir", el programa mostrará cuántos nombres ingresó.

nombres = []

while True:
nombre = input("Ingresa un nombre (o escribe 'salir' para terminar):
")
if nombre.lower() == "salir":
break # Salimos del bucle si el usuario escribe 'salir'
nombres.append(nombre) # Agregamos el nombre a la lista

print(f"Has ingresado {len(nombres)} nombres.")

🔹 Ejemplo de salida:

Ingresa un nombre (o escribe 'salir' para terminar): Juan


Ingresa un nombre (o escribe 'salir' para terminar): Ana
Ingresa un nombre (o escribe 'salir' para terminar): Pedro
Ingresa un nombre (o escribe 'salir' para terminar): salir
Has ingresado 3 nombres.

✅ Usamos len(nombres) para contar cuántos nombres ingresó el usuario.


🔥 Reto Extra: Encontrar el número más largo

✍ Escribe una función que reciba una lista de números y devuelva el número con más
dígitos.

📌 Ejemplo de uso:

numero_mas_largo([100, 23, 5555, 67890, 2])

🔹 Salida esperada:

67890
Metodo split(), es un método de Python que se usa para dividir una cadena en una lista
de palabras o fragmentos. Aquí tienes varios ejemplos prácticos. 🚀

📌 Ejemplo 1: Dividir una oración en palabras


frase = "Python es un lenguaje poderoso"
palabras = frase.split() # Divide la cadena por espacios
print(palabras)

🔹 Salida:

['Python', 'es', 'un', 'lenguaje', 'poderoso']

✅ Por defecto, split() divide la cadena en los espacios en blanco.

📌 Ejemplo 2: Dividir usando un separador personalizado

Puedes dividir usando comas, puntos, guiones, etc.

datos = "Juan,Pérez,25,Ana,Méndez,30"
lista = datos.split(",") # Divide por comas
print(lista)

🔹 Salida:

['Juan', 'Pérez', '25', 'Ana', 'Méndez', '30']

✅ Aquí split(",") separa cada elemento donde encuentra una coma.

📌 Ejemplo 3: Contar palabras en una oración


frase = "Hoy es un gran día para aprender Python"
cantidad_palabras = len(frase.split()) # Divide y cuenta
print(f"La oración tiene {cantidad_palabras} palabras.")

🔹 Salida:

La oración tiene 7 palabras.

✅ Usamos split() para dividir la frase en palabras y len() para contarlas.


📌 Ejemplo 4: Separar una fecha en día, mes y año
fecha = "20/02/2025"
dia, mes, anio = fecha.split("/") # Separa usando "/"
print(f"Día: {dia}, Mes: {mes}, Año: {anio}")

🔹 Salida:

Día: 20, Mes: 02, Año: 2025

✅ Desempaquetamos los valores directamente en variables.

📌 Ejemplo 5: Convertir una lista en una oración usando join()

Después de dividir una cadena con split(), podemos unirla nuevamente con join().

palabras = ["Python", "es", "genial"]


frase = " ".join(palabras) # Une la lista con espacios
print(frase)

🔹 Salida:

Python es genial

✅ " ".join(lista) une los elementos con espacios.

📌 Ejemplo 6: Limpiar espacios extras antes de dividir


texto = " Hola mundo Python "
palabras = texto.strip().split() # `strip()` elimina espacios al inicio
y al final
print(palabras)

🔹 Salida:

['Hola', 'mundo', 'Python']

✅ Elimina espacios adicionales antes de dividir.

🔥 Reto Extra: Obtener la primera y última palabra de una oración

✍ Escribe una función que reciba una oración y devuelva la primera y última
palabra.

📌 Ejemplo de uso:
primera_ultima("Python es increíble")

🔹 Salida esperada:

('Python', 'increíble')

💡 ¿Te animas a resolverlo? 🚀

En el código “for num” que representa num

En el siguiente código:

lista = [10, 20, 30, 40]

for num in lista:


print(num)

📌 Explicación:

 lista es una lista con los valores [10, 20, 30, 40].
 for num in lista significa "para cada elemento en lista, guárdalo en num y
ejecútalo en el bloque de código indentado".
 num es una variable temporal que representa cada elemento de la lista en cada iteración.

🔹 Cómo funciona el for paso a paso:


1️⃣num = 10 → Se imprime 10
2️⃣num = 20 → Se imprime 20
3️⃣num = 30 → Se imprime 30
4️⃣num = 40 → Se imprime 40

🔹 Salida del código:

10
20
30
40

✅ num cambia en cada iteración y representa un valor de la lista en ese momento. 🚀


Tuplas

Una tupla en Python es una estructura de datos inmutable que se usa para almacenar
varios elementos en un solo objeto.

📌 Características principales de una tupla:

1️⃣Se define con paréntesis ()


2️⃣Puede contener diferentes tipos de datos (números, strings, listas, etc.)
3️⃣Es inmutable, lo que significa que no se pueden modificar sus elementos después de
creada.
4️⃣Permite acceder a sus elementos por índice (como una lista).

📌 Ejemplo básico de una tupla


mi_tupla = (1, 2, 3, "Python", True)
print(mi_tupla)

🔹 Salida:

(1, 2, 3, 'Python', True)

✅ Puede contener diferentes tipos de datos.

📌 Acceder a los elementos de una tupla


mi_tupla = ("manzana", "pera", "uva")

print(mi_tupla[0]) # Primer elemento → "manzana"


print(mi_tupla[1]) # Segundo elemento → "pera"
print(mi_tupla[-1]) # Último elemento → "uva"

✅ Se accede a los elementos con índices como en las listas.

📌 Intentar modificar una tupla (Error)


mi_tupla = (10, 20, 30)
mi_tupla[0] = 100 # ❌ Esto dará error porque una tupla no se puede
modificar

🔹 Salida:
TypeError: 'tuple' object does not support item assignment

⚠️Las tuplas no permiten cambiar sus valores después de ser creadas.

📌 Usos comunes de las tuplas

1 Retornar múltiples valores en una función


1️⃣
def coordenadas():
return (10, 20) # Retorna una tupla

x, y = coordenadas() # Desempaquetado
print(f"X: {x}, Y: {y}")

🔹 Salida:

X: 10, Y: 20

✅ Las funciones pueden devolver múltiples valores en forma de tupla.

2️⃣Convertir listas en tuplas


lista = [1, 2, 3]
tupla = tuple(lista) # Convierte lista en tupla
print(tupla)

🔹 Salida:

(1, 2, 3)

✅ Se usa cuando queremos que los datos sean inmutables.

3️⃣Tuplas como claves en diccionarios (porque son inmutables)


coordenadas = {(10, 20): "Punto A", (30, 40): "Punto B"}
print(coordenadas[(10, 20)]) # Accede usando la tupla como clave

🔹 Salida:

Punto A

✅ Las listas no pueden ser claves en diccionarios, pero las tuplas sí.
🔥 Reto Extra: Crear una tupla con los días de la semana y mostrar
el tercer día
dias = ("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado",
"Domingo")

🔹 Salida esperada si accedes al tercer día:

Miércoles

💡 ¿Te animas a intentarlo? 🚀


LISTA

Una lista en Python es una estructura de datos que te permite almacenar varios valores en
un solo contenedor. Es ordenada, mutable (puedes cambiar sus elementos) y puede
contener diferentes tipos de datos (números, strings, otras listas, etc.).

Ejemplo de lista en Python


# Lista con diferentes tipos de datos
mi_lista = [1, 2, 3, "hola", 5.5, True]

print(mi_lista)

Salida:

[1, 2, 3, 'hola', 5.5, True]

Cómo acceder a los elementos de una lista

Puedes usar índices (posición del elemento) para acceder a los valores:

print(mi_lista[0]) # Primer elemento → 1


print(mi_lista[3]) # Cuarto elemento → 'hola'
print(mi_lista[-1]) # Último elemento → True

Cómo modificar una lista

Las listas son mutables, lo que significa que puedes cambiar sus valores:

mi_lista[3] = "mundo"
print(mi_lista)

Salida:

[1, 2, 3, 'mundo', 5.5, True]

Operaciones con listas

🔹 Agregar elementos → .append()

mi_lista.append(100) # Agrega 100 al final


🔹 Eliminar elementos → .remove()

mi_lista.remove(3) # Elimina el número 3

🔹 Longitud de la lista → len()

print(len(mi_lista)) # Cuenta cuántos elementos hay

🔹 Slicing (extraer partes de la lista)

print(mi_lista[1:4]) # Obtiene elementos del índice 1 al 3

Ejemplo completo de lista en Python


# Crear una lista
numeros = [10, 20, 30, 40]

# Agregar un número
numeros.append(50)

# Modificar un valor
numeros[1] = 25

# Eliminar un número
numeros.remove(30)

# Mostrar la lista final


print(numeros)

Salida:

[10, 25, 40, 50]

Resumen 📌

✅ Una lista almacena varios elementos en orden.


✅ Puede contener diferentes tipos de datos.
✅ Puedes modificarla, agregar o eliminar elementos.
✅ Se accede a sus elementos con índices.

Aquí tienes varios ejemplos de cómo manipular listas en Python con diferentes métodos y
técnicas útiles. 🚀
1️⃣ Agregar elementos a una lista

🔹 append() → Agrega un elemento al final


numeros = [1, 2, 3]
numeros.append(4)
print(numeros)

Salida:

[1, 2, 3, 4]

🔹 insert() → Agrega un elemento en un índice específico


numeros.insert(1, 99) # Inserta 99 en la posición 1
print(numeros)

Salida:

[1, 99, 2, 3, 4]

🔹 extend() → Agrega múltiples elementos


numeros.extend([5, 6, 7])
print(numeros)

Salida:

[1, 99, 2, 3, 4, 5, 6, 7]

2️⃣ Eliminar elementos de una lista

🔹 remove() → Elimina el primer elemento que coincide


numeros.remove(99)
print(numeros)

Salida:

[1, 2, 3, 4, 5, 6, 7]

🔹 pop() → Elimina un elemento por índice (o el último si no se especifica)


numeros.pop(2) # Elimina el tercer elemento (índice 2)
print(numeros)

Salida:
[1, 2, 4, 5, 6, 7]

🔹 clear() → Borra todos los elementos


numeros.clear()
print(numeros)

Salida:

[]

3️⃣ Modificar elementos de una lista


frutas = ["manzana", "banana", "cereza"]
frutas[1] = "naranja" # Cambia 'banana' por 'naranja'
print(frutas)

Salida:

["manzana", "naranja", "cereza"]

4️⃣ Ordenar y Revertir listas

🔹 sort() → Ordena de menor a mayor (o alfabéticamente)


numeros = [3, 1, 4, 1, 5, 9, 2]
numeros.sort()
print(numeros)

Salida:

csharp
CopiarEditar
[1, 1, 2, 3, 4, 5, 9]

🔹 sort(reverse=True) → Ordena de mayor a menor


numeros.sort(reverse=True)
print(numeros)

Salida:

[9, 5, 4, 3, 2, 1, 1]

🔹 reverse() → Invierte el orden de la lista


numeros.reverse()
print(numeros)
Salida:

[1, 1, 2, 3, 4, 5, 9]

5️⃣ Obtener información de una lista

🔹 len() → Cantidad de elementos


print(len(numeros)) # 7

🔹 min() y max() → Mínimo y máximo


print(min(numeros)) # 1
print(max(numeros)) # 9

🔹 sum() → Suma de los elementos


print(sum(numeros)) # 25

6️⃣ Slicing (Cortar partes de la lista)


numeros = [10, 20, 30, 40, 50, 60, 70]

print(numeros[1:4]) # [20, 30, 40]


print(numeros[:3]) # [10, 20, 30] (Desde el inicio hasta índice 3)
print(numeros[4:]) # [50, 60, 70] (Desde índice 4 hasta el final)
print(numeros[-3:]) # [50, 60, 70] (Últimos 3 elementos)

7️⃣ Recorrer listas con for

🔹 Recorrer cada elemento


frutas = ["manzana", "banana", "cereza"]
for fruta in frutas:
print(fruta)

Salida:

manzana
banana
cereza

🔹 Recorrer con enumerate() para obtener índice y valor


for i, fruta in enumerate(frutas):
print(f"Índice {i}: {fruta}")

Salida:
Índice 0: manzana
Índice 1: banana
Índice 2: cereza

8️⃣ Listas de listas (listas anidadas)

Puedes tener listas dentro de listas, como una matriz:

matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]

print(matriz[1][2]) # 6 (fila 1, columna 2)

🔥 Resumen de lo que aprendiste

✅ Agregar elementos (append, insert, extend)


✅ Eliminar elementos (remove, pop, clear)
✅ Modificar elementos
✅ Ordenar y revertir (sort, reverse)
✅ Obtener info (len, min, max, sum)
✅ Slicing y recorridos con for
✅ Listas anidadas (matrices)
¡Aquí tienes varios ejemplos de código que usan listas y bucles en Python! 🚀🐍

1️⃣Recorrer una lista con for y mostrar los elementos


frutas = ["manzana", "banana", "cereza", "uva"]

for fruta in frutas:


print(f"Me gusta la {fruta}")

Salida:

Me gusta la manzana
Me gusta la banana
Me gusta la cereza
Me gusta la uva

2️⃣Recorrer una lista con enumerate() para obtener el índice


python
CopiarEditar
numeros = [10, 20, 30, 40, 50]

for i, num in enumerate(numeros):


print(f"Índice {i}: {num}")

Salida:

Índice 0: 10
Índice 1: 20
Índice 2: 30
Índice 3: 40
Índice 4: 50

3️⃣Usar while para recorrer una lista


colores = ["rojo", "verde", "azul"]
i = 0

while i < len(colores):


print(f"Color: {colores[i]}")
i += 1
Salida:

Color: rojo
Color: verde
Color: azul

4️⃣Filtrar números pares de una lista


numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
pares = [num for num in numeros if num % 2 == 0]

print(f"Números pares: {pares}")

Salida:

Números pares: [2, 4, 6, 8, 10]

5️⃣Duplicar los valores de una lista usando map()


numeros = [1, 2, 3, 4, 5]
duplicados = list(map(lambda x: x * 2, numeros))

print(duplicados)

Salida:

[2, 4, 6, 8, 10]

6️⃣Sumar todos los elementos de una lista con sum()


numeros = [5, 10, 15, 20]
suma = sum(numeros)

print(f"La suma de los números es: {suma}")

Salida:

La suma de los números es: 50

7️⃣Crear una lista con valores al cuadrado usando for


numeros = [1, 2, 3, 4, 5]
cuadrados = []

for num in numeros:


cuadrados.append(num ** 2)
print(cuadrados)

Salida:

[1, 4, 9, 16, 25]

8️⃣Crear una tabla de multiplicar con listas y bucles


numero = 5
tabla = []

for i in range(1, 11):


tabla.append(numero * i)

print(f"Tabla del {numero}: {tabla}")

Salida:

Tabla del 5: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

9️⃣Buscar un elemento en una lista


animales = ["perro", "gato", "elefante", "tigre"]
buscar = "gato"

if buscar in animales:
print(f"{buscar} está en la lista")
else:
print(f"{buscar} no está en la lista")

Salida:

gato está en la lista

🔟 Crear una matriz (lista de listas) y recorrerla


matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]

for fila in matriz:


for elemento in fila:
print(elemento, end=" ")
print() # Salto de línea para cada fila
Salida:

1 2 3
4 5 6
7 8 9

💡 ¿Quieres un ejercicio específico con listas y bucles? 🚀🔥

Aquí tienes tres ejercicios con listas y bucles en Python. Intenta resolverlos y dime si
necesitas ayuda. 🔥🐍

1️⃣Sumar los números de una lista

Crea un programa que sume todos los números de una lista y muestre el resultado.

numeros = [3, 7, 12, 5, 9]


# Tu código aquí

💡 Salida esperada:

La suma de los números es: 36

2️⃣Contar cuántas veces aparece un elemento en una lista

Escribe un programa que cuente cuántas veces aparece un número en una lista dada.

lista = [1, 2, 3, 4, 1, 2, 1, 5, 1, 6]
numero_a_buscar = 1
# Tu código aquí

💡 Salida esperada:

El número 1 aparece 4 veces en la lista.

3️⃣Invertir una lista sin usar reverse()

Escribe un programa que invierta una lista sin usar la función reverse().

original = [10, 20, 30, 40, 50]


# Tu código aquí

💡 Salida esperada:
Lista invertida: [50, 40, 30, 20, 10]

💡 Prueba resolverlos y dime si necesitas pistas o ayuda. 🚀🔥


¿Qué significa append en lista.append()?

El método .append() en Python se usa para agregar un elemento al final de una lista.

📌 Ejemplo:

numeros = [1, 2, 3]
numeros.append(4) # Agrega el número 4 al final
print(numeros)

💡 Salida:

[1, 2, 3, 4]

¿Para qué sirve el punto (.) en lista.append()?

El punto (.) en Python se usa para acceder a los métodos y atributos de un objeto.

🔹 En este caso, append es un método de las listas en Python, y lo llamamos con . para que
actúe sobre lista.

📌 Ejemplo con otro método:

texto = "hola mundo"


print(texto.upper()) # El método upper() convierte el texto a mayúsculas

💡 Salida:

HOLA MUNDO

Resumen:

 append agrega un elemento a una lista.


 El . se usa para acceder a los métodos de un objeto.

Codigos con append y como se usa el punto

ChatGPT dijo:

¡Claro! Aquí tienes varios ejemplos de append() y cómo se usa el punto (.) en Python. 🚀🐍

1️⃣Agregar elementos a una lista con append()


frutas = ["manzana", "banana"]
frutas.append("naranja") # Agrega "naranja" al final
print(frutas)

💡 Salida:

['manzana', 'banana', 'naranja']

2️⃣Usar append() dentro de un bucle


numeros = []
for i in range(1, 6): # Agrega los números del 1 al 5
numeros.append(i)
print(numeros)

💡 Salida:

[1, 2, 3, 4, 5]

3️⃣Crear una lista con nombres ingresados por el usuario


nombres = []
for _ in range(3): # Pide 3 nombres
nombre = input("Ingresa un nombre: ")
nombres.append(nombre) # Agrega cada nombre a la lista
print("Lista de nombres:", nombres)

📌 Ejemplo de entrada y salida:

Ingresa un nombre: Juan


Ingresa un nombre: Ana
Ingresa un nombre: Luis
Lista de nombres: ['Juan', 'Ana', 'Luis']

4️⃣Usar . para acceder a otros métodos de listas


numeros = [4, 2, 8, 1]
numeros.sort() # Ordena la lista de menor a mayor
print(numeros)

💡 Salida:

[1, 2, 4, 8]

Aquí, el . nos permite acceder al método .sort() de la lista.


🔹 Resumen:

 .append() agrega elementos al final de una lista.


 El . se usa para acceder a métodos como .append(), .sort(), .reverse(), etc.

Si necesitas más ejemplos, dime. 🚀🔥

Aqui, def multiplos (n): lista=[] for i in range(1,6): lista.append(n*i) return lista print (multiplos (3)),
pq es de 1 a 6 ? no deberia ser de 1 a n+1, en que momento hacen los multiplos??

ChatGPT dijo:

Analicemos el código línea por línea y aclararemos tus dudas.

Código:
def multiplos(n):
lista = []
for i in range(1, 6): # i toma valores desde 1 hasta 5
lista.append(n * i) # Se multiplica n por cada i y se agrega a
la lista
return lista

print(multiplos(3)) # Llamamos a la función con n=3

Explicación paso a paso:

1️⃣Definimos la función multiplos(n)

 Recibe un número n.

2️⃣Creamos una lista vacía llamada lista.

lista = []

3️⃣Iteramos con for i in range(1, 6):

 range(1, 6) significa que i tomará valores: 1, 2, 3, 4, 5


 No llega a 6, porque range() excluye el último número.

4️⃣Generamos los múltiplos de n

lista.append(n * i)

 Para cada i, multiplicamos n * i y lo agregamos a la lista.

¿Qué son los múltiplos?

🔹 Un múltiplo de un número n es el resultado de multiplicarlo por enteros positivos.


🔹 Por ejemplo, los primeros 5 múltiplos de 3 son:

3×1, 3×2, 3×3, 3×4, 3×5 → [3, 6, 9, 12, 15]

📌 Ejemplo con n=3 en el código:

print(multiplos(3))

💡 Salida:

[3, 6, 9, 12, 15]

📌 Respondiendo a tus dudas:

1️⃣¿Por qué range(1, 6) y no range(1, n+1)?

 No tiene que ver con n, sino con cuántos múltiplos quieres.


 Aquí solo queremos los primeros 5 múltiplos.
 Si queremos los primeros n múltiplos, cambiaríamos range(1, 6) por range(1, n+1).

2️⃣¿Cuándo se generan los múltiplos?

 Se generan dentro del for, en la línea lista.append(n * i).


 i toma valores de 1 a 5, y cada vez multiplica n.

3️⃣¿Múltiplos de qué?

 Son los múltiplos del número n que pasamos como argumento a la función.
 Si llamamos a multiplos(4), nos dará los primeros 5 múltiplos de 4:

[4, 8, 12, 16, 20]


🔧 Código mejorado (para cualquier cantidad de múltiplos)

Si queremos los primeros m múltiplos de n, podemos hacer esto:

def multiplos(n, m):


lista = []
for i in range(1, m+1): # Genera los primeros m múltiplos de n
lista.append(n * i)
return lista

print(multiplos(3, 10)) # Primeros 10 múltiplos de 3

💡 Salida:

[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

🔹 Conclusión:

 range(1, 6) genera 5 valores (1, 2, 3, 4, 5), por eso obtenemos los primeros 5
múltiplos.
 Los múltiplos se generan con n * i dentro del bucle.
 Podemos mejorar el código para obtener cualquier cantidad de múltiplos.

Multiplo es cuando el resto es 0??

¡Sí, tienes razón! Un número x es múltiplo de otro número n si al dividir x ÷ n el residuo


(resto) es 0.

Ejemplo:
✔️10 es múltiplo de 5 porque 10 ÷ 5 = 2 y el resto es 0.
❌ 10 NO es múltiplo de 3 porque 10 ÷ 3 = 3 con resto 1.

¿El código está generando múltiplos?

Sí, porque n × i siempre es múltiplo de n.


Si n=3, los valores generados son:

3×1=3, 3×2=6, 3×3=9, 3×4=12, 3×5=15

Cada uno de estos es divisible entre 3 sin resto, por lo que son múltiplos.

📌 Verificar si un número es múltiplo usando % (módulo)


Podemos usar el operador % (módulo) para comprobar si un número es múltiplo de otro:

def es_multiplo(x, n):


return x % n == 0 # Si el resto es 0, es múltiplo

print(es_multiplo(10, 5)) # ✅ True


print(es_multiplo(10, 3)) # ❌ False

💡 Salida:

True
False

🔹 Resumen:
✔️Un múltiplo de n es cualquier número que al dividirlo por n da resto 0.
✔️n × i genera múltiplos de n.
✔️Podemos verificar si un número es múltiplo con %.

Si se usa %=0 se podria??

ChatGPT dijo:

No exactamente. En Python, la expresión x %= 0 generaría un error, porque no se puede


dividir entre cero. Pero si la usas correctamente con otro número, sí funciona.

📌 ¿Cómo usar % para verificar múltiplos?

✅ Lo correcto es usar x % n == 0, que significa:


"Si x dividido por n tiene residuo 0, entonces x es múltiplo de n."

🔹 Ejemplo correcto:

def es_multiplo(x, n):


return x % n == 0 # Si el residuo es 0, es múltiplo

print(es_multiplo(10, 5)) # ✅ True (10 es múltiplo de 5)


print(es_multiplo(10, 3)) # ❌ False (10 no es múltiplo de 3)

💡 Salida:

True
False

🚫 Error si intentas x %= 0

Si intentas esto:
x = 10
x %= 0 # ❌ ERROR: No se puede dividir entre 0

📌 Python mostrará:

ZeroDivisionError: integer division or modulo by zero

🚨 No se puede calcular el módulo con 0.

📌 ¿Para qué sirve x %= n?

🔹 x %= n no verifica múltiplos, sino que modifica el valor de x.


🔹 Es una forma abreviada de escribir:

x = x % n # Lo mismo que x %= n

🔹 Ejemplo de uso correcto de x %= n:

x = 10
x %= 3 # 10 % 3 = 1 (porque 10 dividido entre 3 da 3 y sobra 1)
print(x) # 🟢 Salida: 1

💡 Esto NO verifica múltiplos, sino que guarda el residuo de la división en x.

🔹 Resumen

✅ Para verificar si un número es múltiplo de otro:

if x % n == 0:
print("Es múltiplo")

❌ No se puede hacer x %= 0, porque genera un error.


✔️x %= n sirve para guardar el residuo, pero no para verificar múltiplos.

Sí, podemos aplicar la verificación de múltiplos usando % en una lista con los primeros
cinco múltiplos de un número. Aquí tienes un código que lo hace:

📌 Código: Generar los primeros 5 múltiplos y verificarlos


def multiplos(n):
lista = [] # Crear lista vacía
for i in range(1, 6): # Del 1 al 5 (Primeros 5 múltiplos)
multiplo = n * i # Calcular múltiplo
lista.append(multiplo) # Agregar a la lista
# Verificar si realmente es múltiplo usando %
if multiplo % n == 0:
print(f"{multiplo} es múltiplo de {n}")
else:
print(f"{multiplo} NO es múltiplo de {n}")

return lista # Retornar la lista de múltiplos

# Probar con un número


print(multiplos(3))

📌 Explicación

1. Creamos una lista vacía lista = [].


2. Usamos un for para calcular los primeros 5 múltiplos de n (n × i).
3. Los agregamos a la lista con lista.append(multiplo).
4. Usamos % para verificar si el número realmente es múltiplo (multiplo % n == 0).
5. Retornamos la lista completa.

💡 Salida si n = 3

3 es múltiplo de 3
6 es múltiplo de 3
9 es múltiplo de 3
12 es múltiplo de 3
15 es múltiplo de 3
[3, 6, 9, 12, 15]

🚀 Todos son múltiplos de 3.

Si quieres mejorar o modificar algo, dime. 🔥

Aquí tienes una función en Python que recibe un número y devuelve una lista con los
resultados de multiplicarlo por 3, 4, 5, ..., hasta n:

def multiplicar_hasta_n(numero, n):


return [numero * i for i in range(3, n + 1)]

# Ejemplo de uso
resultado = multiplicar_hasta_n(2, 7)
print(resultado) # Salida: [6, 8, 10, 12, 14]
Si llamas a multiplicar_hasta_n(2, 7), multiplicará 2 × 3, 2 × 4, ..., 2 × 7 y devolverá
[6, 8, 10, 12, 14].

En Python, len() es una función incorporada que devuelve la cantidad de elementos en


un objeto iterable, como una lista, una cadena de texto, un diccionario, etc.

📌 Ejemplos de len()

1️⃣ Contar caracteres en una cadena


python
CopiarEditar
texto = "Python"
print(len(texto)) # Salida: 6

✅ Cuenta los caracteres en la palabra "Python" (P, y, t, h, o, n).

2️⃣ Contar elementos en una lista


python
CopiarEditar
numeros = [10, 20, 30, 40, 50]
print(len(numeros)) # Salida: 5

✅ La lista tiene 5 elementos.

3️⃣ Contar claves en un diccionario


python
CopiarEditar
persona = {"nombre": "Juan", "edad": 25, "ciudad": "Madrid"}
print(len(persona)) # Salida: 3

✅ Cuenta las claves del diccionario (nombre, edad, ciudad).

4️⃣ Contar filas en una matriz (lista de listas)


python
CopiarEditar
matriz = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(len(matriz)) # Salida: 3

✅ Cuenta las filas (3 listas dentro de la lista principal).


📌 Resumen

Tipo de dato len() devuelve

Cadena (str) Número de caracteres

Lista (list) Número de elementos

Tupla (tuple) Número de elementos

Diccionario (dict) Número de claves

Conjunto (set) Número de elementos únicos

🚀 ¿Quieres ejemplos más avanzados o una aplicación en trading?

4o

Dijiste:
con estructuras de control

ChatGPT dijo:

Aquí tienes ejemplos avanzados de len() usando estructuras de control (if, for, while).
🚀

📌1️⃣if con len(): Verificar si una lista está vacía


python
CopiarEditar
numeros = []

if len(numeros) == 0:
print("La lista está vacía.")
else:
print("La lista tiene elementos.")

✅ Si la lista está vacía, muestra un mensaje.

📌2️⃣for con len(): Recorrer una lista por índice


python
CopiarEditar
frutas = ["Manzana", "Banana", "Cereza"]
for i in range(len(frutas)):
print(f"Fruta {i + 1}: {frutas[i]}")

✅ Usamos range(len(frutas)) para recorrer la lista por índice.

Salida:

yaml
CopiarEditar
Fruta 1: Manzana
Fruta 2: Banana
Fruta 3: Cereza

📌3️⃣while con len(): Recorrer una lista hasta que se acaben los elementos
python
CopiarEditar
colores = ["Rojo", "Azul", "Verde"]
i = 0

while i < len(colores):


print(colores[i])
i += 1

✅ El while sigue iterando hasta recorrer toda la lista.

📌4️⃣if con len() en cadenas: Validar un input


python
CopiarEditar
password = input("Escribe tu contraseña: ")

if len(password) < 8:
print("⚠️ La contraseña es demasiado corta. Usa al menos 8
caracteres.")
else:
print("✅ Contraseña aceptada.")

✅ Evita contraseñas demasiado cortas.

📌5️⃣for y if con len(): Filtrar palabras largas


python
CopiarEditar
palabras = ["sol", "luna", "estrella", "mar", "montaña"]
largas = [p for p in palabras if len(p) > 5]

print("Palabras largas:", largas)

✅ Filtra palabras con más de 5 letras usando List Comprehension.


Salida: ['estrella', 'montaña']

📌6️⃣while con len(): Eliminar elementos de una lista hasta que esté vacía
python
CopiarEditar
tareas = ["Leer", "Escribir", "Programar"]

while len(tareas) > 0:


tarea = tareas.pop(0) # Elimina el primer elemento
print(f"Completando tarea: {tarea}")

print("✅ Todas las tareas han sido completadas.")

✅ Elimina elementos uno por uno hasta vaciar la lista.

📌7️⃣len() en Trading (Ejemplo con Binance)

Si queremos saber cuántos pares de criptos se están operando en Binance:

python
CopiarEditar
import requests

url = "https://api.binance.com/api/v3/ticker/price"
response = requests.get(url)
data = response.json()

print(f"🔥 Binance tiene {len(data)} pares de trading disponibles.")

✅ Obtiene la cantidad de pares de trading disponibles en Binance en tiempo real.


puedes darme mas ejercicios donde se modifican los valores dentro de la lista basandote en los
indices??

ChatGPT dijo:

¡Por supuesto! Aquí tienes varios ejercicios avanzados donde se modifican los valores
dentro de una lista usando los índices. 🚀

📌 1️⃣ Multiplicar por 2 los elementos en posiciones pares


python
CopiarEditar
numeros = [10, 15, 20, 25, 30, 35]

for i in range(len(numeros)):
if i % 2 == 0: # Si el índice es par
numeros[i] *= 2 # Multiplicamos por 2

print(numeros)

✅ Salida: [20, 15, 40, 25, 60, 35]


📌 Explicación: Modificamos solo los índices pares (0, 2, 4).

📌 2️⃣ Reemplazar números negativos por 0


python
CopiarEditar
numeros = [5, -3, 10, -1, 8, -6]

for i in range(len(numeros)):
if numeros[i] < 0: # Si el número es negativo
numeros[i] = 0 # Reemplazar por 0

print(numeros)

✅ Salida: [5, 0, 10, 0, 8, 0]

📌 3️⃣ Intercambiar el primer y el último elemento


python
CopiarEditar
numeros = [1, 2, 3, 4, 5]

numeros[0], numeros[-1] = numeros[-1], numeros[0] # Swap

print(numeros)

✅ Salida: [5, 2, 3, 4, 1]
📌 Explicación: numeros[0] toma el valor de numeros[-1] y viceversa.
📌 4️⃣ Duplicar valores en índices impares
python
CopiarEditar
numeros = [2, 4, 6, 8, 10, 12]

for i in range(len(numeros)):
if i % 2 != 0: # Si el índice es impar
numeros[i] *= 2 # Duplicamos el valor

print(numeros)

✅ Salida: [2, 8, 6, 16, 10, 24]

📌 5️⃣ Revertir una lista sin usar .reverse()


python
CopiarEditar
numeros = [1, 2, 3, 4, 5]

for i in range(len(numeros) // 2):


numeros[i], numeros[-i-1] = numeros[-i-1], numeros[i] # Swap

print(numeros)

✅ Salida: [5, 4, 3, 2, 1]

📌 6️⃣ Aumentar en 10 los valores en índices divisibles por 3


python
CopiarEditar
numeros = [5, 10, 15, 20, 25, 30, 35, 40, 45]

for i in range(len(numeros)):
if i % 3 == 0: # Índices divisibles por 3 (0, 3, 6...)
numeros[i] += 10

print(numeros)

✅ Salida: [15, 10, 15, 30, 25, 30, 45, 40, 45]

📌 7️⃣ Ejemplo con Binance: Subir un 5% los precios de cripto


python
CopiarEditar
import requests

# Obtener precios de Binance


url = "https://api.binance.com/api/v3/ticker/price"
response = requests.get(url).json()

# Lista de los primeros 5 pares de trading


precios = [float(response[i]['price']) for i in range(5)]

# Aumentar cada precio en un 5%


for i in range(len(precios)):
precios[i] *= 1.05 # Incrementamos un 5%

print(precios)

✅ Ejemplo real con datos de Binance


El argumento key en funciones predefinidas de Python se usa para especificar un criterio
de ordenación o comparación. Se encuentra en funciones como sorted(), min(), max()
y sorted() entre otras.

🔹 En resumen: key recibe una función que define la forma en que se evaluarán los
elementos para ordenarlos o compararlos.

📌 Ejemplo 1: sorted() con key

Ordenar palabras por longitud en lugar del orden alfabético.

python
CopiarEditar
palabras = ["manzana", "kiwi", "banana", "uva"]

ordenadas = sorted(palabras, key=len)

print(ordenadas)

✅ Salida: ['uva', 'kiwi', 'banana', 'manzana']


📌 Explicación: Se usa len como criterio para ordenar por la cantidad de letras.

📌 Ejemplo 2: min() y max() con key

Obtener la palabra más corta y la más larga.

python
CopiarEditar
palabras = ["python", "java", "c", "javascript"]

mas_corta = min(palabras, key=len)


mas_larga = max(palabras, key=len)

print("Más corta:", mas_corta)


print("Más larga:", mas_larga)

✅ Salida:

yaml
CopiarEditar
Más corta: c
Más larga: javascript
📌 Ejemplo 3: sorted() con lambda en números

Ordenar números en función del valor absoluto.

python
CopiarEditar
numeros = [3, -8, 1, -5, 10]

ordenados = sorted(numeros, key=lambda x: abs(x))

print(ordenados)

✅ Salida: [1, 3, -5, -8, 10]


📌 Explicación: Se usa abs() para ordenar ignorando el signo.

📌 Ejemplo 4: Ordenar una lista de diccionarios

Ordenar personas por edad.

python
CopiarEditar
personas = [
{"nombre": "Carlos", "edad": 35},
{"nombre": "Ana", "edad": 22},
{"nombre": "Pedro", "edad": 29}
]

ordenadas = sorted(personas, key=lambda p: p["edad"])

print(ordenadas)

✅ Salida:

bash
CopiarEditar
[
{'nombre': 'Ana', 'edad': 22},
{'nombre': 'Pedro', 'edad': 29},
{'nombre': 'Carlos', 'edad': 35}
]

📌 Ejemplo 5: Aplicado a Binance (Ordenar criptos por precio)


python
CopiarEditar
import requests

# Obtener datos de Binance


url = "https://api.binance.com/api/v3/ticker/price"
response = requests.get(url).json()
# Ordenar las criptos por precio (de menor a mayor)
ordenadas = sorted(response[:10], key=lambda x: float(x["price"]))

# Mostrar las 5 más baratas


print(ordenadas[:5])

✅ Salida: Lista de criptos ordenadas por precio.

📌 Conclusión

El argumento key permite personalizar el criterio de comparación en funciones como:

 sorted()
 min()
 max()
 sorted(lista, key=función)

Es muy útil en ordenamientos avanzados, especialmente cuando trabajas con listas de


diccionarios o datos de APIs como Binance.

🔹 ¿Quieres más ejemplos o algo aplicado a trading? 🚀

4o

Dijiste:
mas ejemplos con aplicaciones de funciones, listas, indices

ChatGPT dijo:

¡Genial! Aquí tienes más ejemplos avanzados combinando funciones, listas e índices
para que practiques. 🚀

📌 1️⃣ Duplicar valores en índices impares usando función


python
CopiarEditar
def duplicar_impares(lista):
for i in range(len(lista)):
if i % 2 != 0: # Si el índice es impar
lista[i] *= 2 # Duplicamos el valor
return lista

numeros = [3, 5, 8, 10, 12, 15]


print(duplicar_impares(numeros))

✅ Salida: [3, 10, 8, 20, 12, 30]


📌 2️⃣ Intercambiar elementos en índices pares e impares
python
CopiarEditar
def intercambiar(lista):
for i in range(0, len(lista) - 1, 2): # Iteramos de 2 en 2
lista[i], lista[i + 1] = lista[i + 1], lista[i] # Swap
return lista

numeros = [1, 2, 3, 4, 5, 6]
print(intercambiar(numeros))

✅ Salida: [2, 1, 4, 3, 6, 5]
📌 Explicación: Se intercambian los elementos en índices pares e impares.

📌 3️⃣ Obtener los índices de los valores negativos


python
CopiarEditar
def indices_negativos(lista):
return [i for i in range(len(lista)) if lista[i] < 0] # List
Comprehension

numeros = [4, -2, 7, -5, 10, -8]


print(indices_negativos(numeros))

✅ Salida: [1, 3, 5]
📌 Explicación: Devuelve los índices donde hay valores negativos.

📌 4️⃣ Reemplazar números primos por 0


python
CopiarEditar
def es_primo(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True

def reemplazar_primos(lista):
for i in range(len(lista)):
if es_primo(lista[i]):
lista[i] = 0 # Sustitución por 0
return lista

numeros = [2, 4, 5, 9, 11, 15, 17]


print(reemplazar_primos(numeros))
✅ Salida: [0, 4, 0, 9, 0, 15, 0]
📌 Explicación: Los números primos son reemplazados por 0.

📌 5️⃣ Aplicar descuento del 10% en precios mayores a 1000


python
CopiarEditar
def aplicar_descuento(precios):
return [precio * 0.9 if precio > 1000 else precio for precio in
precios]

precios = [500, 1500, 700, 2000, 300]


print(aplicar_descuento(precios))

✅ Salida: [500, 1350.0, 700, 1800.0, 300]

📌 6️⃣ Aplicado a Binance: Filtrar criptos con precio mayor a 50K


python
CopiarEditar
import requests

# Obtener datos de Binance


url = "https://api.binance.com/api/v3/ticker/price"
response = requests.get(url).json()

# Filtrar criptos con precio mayor a 50,000 USD


altas = [cripto for cripto in response if float(cripto["price"]) > 50000]

# Mostrar las primeras 5


print(altas[:5])

✅ Salida: Lista de criptos con precio mayor a 50K.

📌 7️⃣ Cifrar un mensaje desplazando letras en 3 posiciones


python
CopiarEditar
def cifrar(mensaje):
alfabeto = "abcdefghijklmnopqrstuvwxyz"
cifrado = ""

for letra in mensaje:


if letra in alfabeto:
nueva_pos = (alfabeto.index(letra) + 3) % len(alfabeto)
cifrado += alfabeto[nueva_pos]
else:
cifrado += letra # Mantener espacios y símbolos

return cifrado
print(cifrar("hola mundo"))

✅ Salida: "krod pxqgr"


📌 Explicación: Se desplazan las letras 3 posiciones en el alfabeto.

📌 Conclusión

🔥 Estos ejercicios combinan: ✅ Funciones (def)


✅ Listas ([])
✅ Índices (for i in range(len(lista)))
✅ Condiciones (if lista[i] < 0)
✅ List Comprehension

💡 ¿Quieres más ejercicios aplicados a trading o análisis de datos? 🚀

4o

Dijiste:
mas ejemplos con aplicaciones de funciones, listas, indices y argumento key

ChatGPT dijo:

¡Genial! Aquí tienes ejemplos avanzados combinando funciones, listas, índices y el


argumento key en Python. 🚀

📌 1️⃣ Ordenar una lista de números según la cantidad de dígitos

📌 Usamos key=len en números convertidos a string.

python
CopiarEditar
numeros = [100, 2, 34567, 89, 1234]

ordenados = sorted(numeros, key=lambda x: len(str(x)))

print(ordenados)

✅ Salida: [2, 89, 100, 1234, 34567]


📌 Explicación: Se ordena por la cantidad de dígitos.
📌 2️⃣ Encontrar la palabra más larga en una lista

📌 Usamos max() con key=len.

python
CopiarEditar
palabras = ["python", "machine", "inteligencia", "deep"]

mas_larga = max(palabras, key=len)

print(mas_larga)

✅ Salida: "inteligencia"
📌 Explicación: max() devuelve la palabra más larga.

📌 3️⃣ Ordenar una lista de listas por la suma de sus elementos


python
CopiarEditar
listas = [[5, 2, 3], [1, 8], [4, 4, 4, 4], [10]]

ordenadas = sorted(listas, key=lambda x: sum(x))

print(ordenadas)

✅ Salida: [[10], [1, 8], [5, 2, 3], [4, 4, 4, 4]]


📌 Explicación: Se ordenan por la suma de sus elementos.

📌 4️⃣ Ordenar palabras por su última letra


python
CopiarEditar
palabras = ["perro", "gato", "elefante", "zorro"]

ordenadas = sorted(palabras, key=lambda x: x[-1])

print(ordenadas)

✅ Salida: ['elefante', 'gato', 'perro', 'zorro']


📌 Explicación: Se ordenan según la última letra.

📌 5️⃣ Encontrar el número más cercano a 100 en una lista


python
CopiarEditar
numeros = [50, 120, 98, 150, 101]

cercano = min(numeros, key=lambda x: abs(x - 100))


print(cercano)

✅ Salida: 98
📌 Explicación: abs(x - 100) mide la cercanía a 100.

📌 6️⃣ Ordenar criptomonedas por precio en Binance


python
CopiarEditar
import requests

# Obtener datos de Binance


url = "https://api.binance.com/api/v3/ticker/price"
response = requests.get(url).json()

# Ordenar criptos por precio


ordenadas = sorted(response[:10], key=lambda x: float(x["price"]))

# Mostrar las 5 más baratas


print(ordenadas[:5])

✅ Salida: Lista de criptos ordenadas de menor a mayor precio.

📌 7️⃣ Ordenar empleados por edad (Lista de Diccionarios)


python
CopiarEditar
empleados = [
{"nombre": "Carlos", "edad": 35},
{"nombre": "Ana", "edad": 22},
{"nombre": "Pedro", "edad": 29}
]

ordenados = sorted(empleados, key=lambda e: e["edad"])

print(ordenados)

✅ Salida:

bash
CopiarEditar
[
{'nombre': 'Ana', 'edad': 22},
{'nombre': 'Pedro', 'edad': 29},
{'nombre': 'Carlos', 'edad': 35}
]

📌 Explicación: Se ordenan los diccionarios por la clave "edad".


📌 8️⃣ Ordenar una lista de strings por la cantidad de vocales
python
CopiarEditar
def contar_vocales(palabra):
return sum(1 for letra in palabra.lower() if letra in "aeiou")

palabras = ["python", "machine", "aprendizaje", "modelo"]

ordenadas = sorted(palabras, key=contar_vocales)

print(ordenadas)

✅ Salida: ['python', 'modelo', 'machine', 'aprendizaje']


📌 Explicación: Se ordenan por cantidad de vocales.

📌 9️⃣ Ordenar productos por precio con descuento


python
CopiarEditar
productos = [
{"nombre": "Laptop", "precio": 1200, "descuento": 0.1},
{"nombre": "Celular", "precio": 800, "descuento": 0.2},
{"nombre": "Tablet", "precio": 400, "descuento": 0.15}
]

ordenados = sorted(productos, key=lambda p: p["precio"] * (1 -


p["descuento"]))

print(ordenados)

✅ Salida: Ordenados por precio descontando el descuento.

📌 Conclusión

🔹 ¿Qué aprendimos?
✅ Cómo usar key en funciones como sorted(), max(), min().
✅ Cómo aplicar key en listas, índices y diccionarios.
✅ Cómo usarlo con datos reales (Binance, listas anidadas, diccionarios).

🔥 ¿Quieres más ejemplos o algo aplicado a trading? 🚀


Funciones Predefinidas
Las funciones predefinidas (o funciones incorporadas) son aquellas que ya vienen
integradas en un lenguaje de programación y que puedes usar sin necesidad de definirlas tú
mismo. Estas funciones facilitan tareas comunes, como cálculos matemáticos,
manipulación de cadenas, gestión de archivos, etc.

Ejemplo en Python

Algunas funciones predefinidas en Python son:

 print(): Muestra un mensaje en la pantalla.


 len(): Devuelve la cantidad de elementos en una lista o caracteres en una cadena.
 type(): Devuelve el tipo de dato de un valor o variable.
 sum(): Suma los elementos de una lista.

nombre = "Juan"
print(len(nombre)) # Resultado: 4
print(type(nombre)) # Resultado: <class 'str'>
print(sum([1, 2, 3, 4])) # Resultado: 10

sorted() es una función predefinida en Python. Se usa para ordenar elementos de una
lista u otro iterable sin modificar el original.

Ejemplo de sorted()
numeros = [5, 2, 9, 1, 5, 6]
ordenados = sorted(numeros)
print(ordenados) # Resultado: [1, 2, 5, 5, 6, 9]

Parámetros útiles de sorted()

1 Orden inverso (reverse=True)

numeros = [5, 2, 9, 1, 5, 6]
ordenados_desc = sorted(numeros, reverse=True)
print(ordenados_desc) # Resultado: [9, 6, 5, 5, 2, 1]

2️Ordenar por clave personalizada (key)


Por ejemplo, ordenar palabras por su longitud:

palabras = ["banana", "manzana", "kiwi", "pera"]


ordenadas = sorted(palabras, key=len)
print(ordenadas) # Resultado: ['kiwi', 'pera', 'banana', 'manzana']

Sirve mucho cuando trabajas con datos.


Aquí tienes una lista de las funciones predefinidas más utilizadas en Python, con sus
características, uso y ejemplos prácticos y propuestos.

📌 1. print()

📖 Descripción: Muestra un mensaje en la pantalla.


🔹 Sintaxis: print(valor1, valor2, ..., sep=" ", end="\n")
📌 Parámetros:

 sep: separador entre valores (por defecto es un espacio).


 end: qué agregar al final (por defecto es un salto de línea \n).

✅ Ejemplo desarrollado:

print("Hola", "mundo", sep="-", end="!\n")


# Salida: Hola-mundo!

💡 Ejemplo propuesto:
Imprime los números del 1 al 5 en una sola línea, separados por comas.

📌 2. len()

📖 Descripción: Devuelve la cantidad de elementos en una cadena, lista o tupla.


🔹 Sintaxis: len(iterable)

✅ Ejemplo desarrollado:

texto = "Python"
print(len(texto)) # Salida: 6

💡 Ejemplo propuesto:
Crea una lista con 5 elementos y muestra su longitud.

Observacion:

El error en tu código es que estás usando len como clave (key=len) en la función
sorted(), pero len() solo se puede aplicar a objetos con longitud definida, como cadenas
o listas.

En este caso, numeros es una lista de enteros, y los enteros no tienen longitud, lo que
genera un error del tipo: TypeError: object of type 'int' has no len()

🔧 Solución:
Si lo que quieres es ordenar los números de menor a mayor, simplemente usa:

numeros = [5, 4, 3, 2, 1]
ordenados = sorted(numeros) # No necesitas 'key=len'
print(ordenados)

Si intentabas ordenar una lista de cadenas según su longitud, entonces sí podrías usar
key=len:

palabras = ["hola", "a", "mundo", "Python"]


ordenadas = sorted(palabras, key=len)
print(ordenadas)

📌 3. type()

📖 Descripción: Devuelve el tipo de dato de un valor o variable.


🔹 Sintaxis: type(valor)

✅ Ejemplo desarrollado:

print(type(3.14)) # Salida: <class 'float'>

💡 Ejemplo propuesto:
Verifica el tipo de dato de una variable que almacene True.

valor = True

print(type(valor)) # Salida: <class 'bool'>

📌 4. sorted()

📖 Descripción: Ordena los elementos de una lista sin modificarla.


🔹 Sintaxis: sorted(iterable, key=None, reverse=False)

✅ Ejemplo desarrollado:

numeros = [4, 1, 7, 3]
print(sorted(numeros)) # Salida: [1, 3, 4, 7]

💡 Ejemplo propuesto:
Ordena una lista de palabras por su última letra.

📌 5. sum()

📖 Descripción: Devuelve la suma de los elementos de una lista o tupla.


🔹 Sintaxis: sum(iterable)
✅ Ejemplo desarrollado:

valores = [10, 20, 30]


print(sum(valores)) # Salida: 60

💡 Ejemplo propuesto:
Suma los números del 1 al 100 usando range().

📌 6. max() y min()

📖 Descripción:

 max(): Encuentra el mayor elemento.


 min(): Encuentra el menor elemento.
🔹 Sintaxis: max(iterable) y min(iterable)

✅ Ejemplo desarrollado:

numeros = [8, 3, 9, 2]
print(max(numeros)) # Salida: 9
print(min(numeros)) # Salida: 2

💡 Ejemplo propuesto:
Encuentra la palabra más larga en una lista de palabras.

📌 7. round()

📖 Descripción: Redondea un número decimal.


🔹 Sintaxis: round(numero, ndigits)

✅ Ejemplo desarrollado:

print(round(3.14159, 2)) # Salida: 3.14

💡 Ejemplo propuesto:
Redondea 2.71828 a 3 decimales.

📌 8. abs()

📖 Descripción: Devuelve el valor absoluto de un número.


🔹 Sintaxis: abs(numero)
✅ Ejemplo desarrollado:

print(abs(-10)) # Salida: 10

💡 Ejemplo propuesto:
Calcula la diferencia absoluta entre x = 15 y y = 30.

📌 9. range()

📖 Descripción: Genera una secuencia de números.


🔹 Sintaxis: range(inicio, fin, paso)

✅ Ejemplo desarrollado:

for i in range(1, 6):


print(i, end=" ") # Salida: 1 2 3 4 5

💡 Ejemplo propuesto:
Genera los números pares del 10 al 20 usando range().

📌 10. zip()

📖 Descripción: Une listas o iterables en pares de tuplas.


🔹 Sintaxis: zip(iterable1, iterable2, ...)

✅ Ejemplo desarrollado:

nombres = ["Ana", "Luis", "Pedro"]


edades = [25, 30, 35]
combinado = list(zip(nombres, edades))
print(combinado) # Salida: [('Ana', 25), ('Luis', 30), ('Pedro', 35)]

💡 Ejemplo propuesto:
Une dos listas de igual longitud y muestra el resultado como una lista de tuplas.

📌 11. map()

📖 Descripción: Aplica una función a cada elemento de un iterable.


🔹 Sintaxis: map(funcion, iterable)

✅ Ejemplo desarrollado:
numeros = [1, 2, 3]
dobles = list(map(lambda x: x * 2, numeros))
print(dobles) # Salida: [2, 4, 6]

💡 Ejemplo propuesto:
Convierte una lista de temperaturas en Celsius a Fahrenheit.

📌 12. filter()

📖 Descripción: Filtra los elementos de un iterable según una condición.


🔹 Sintaxis: filter(funcion, iterable)

✅ Ejemplo desarrollado:

numeros = [10, 15, 20, 25]


pares = list(filter(lambda x: x % 2 == 0, numeros))
print(pares) # Salida: [10, 20]

💡 Ejemplo propuesto:
Filtra los nombres que tienen más de 5 letras en una lista.

📌 13. enumerate()

📖 Descripción: Agrega índices a un iterable.


🔹 Sintaxis: enumerate(iterable, inicio=0)

✅ Ejemplo desarrollado:

frutas = ["Manzana", "Banana", "Cereza"]


for indice, fruta in enumerate(frutas, 1):
print(f"{indice}: {fruta}")

Salida:

makefile
CopiarEditar
1: Manzana
2: Banana
3: Cereza

💡 Ejemplo propuesto:
Muestra una lista de tareas numeradas.
Con estas funciones predefinidas, ya puedes hacer muchas operaciones en Python sin
necesidad de escribir código desde cero. ¡Dime si quieres más ejemplos o explicación de
alguna en detalle! 🚀

Más ejemplos desarrollados y propuestos para cada función. 🔥

1 print()

✅ Ejemplo desarrollado:

nombre = "Carlos"
edad = 25
print(f"Hola, mi nombre es {nombre} y tengo {edad} años.")

💡 Ejemplo propuesto:
Imprime tu nombre y ciudad de origen en una sola línea, separándolos con un guion -.

2 len()

✅ Ejemplo desarrollado:

lista = [1, 2, 3, 4, 5]
print(len(lista)) # Salida: 5

💡 Ejemplo propuesto:
Calcula la cantidad de caracteres en la frase "Python es genial".

3 type()

✅ Ejemplo desarrollado:

dato = 3.14
print(type(dato)) # Salida: <class 'float'>

💡 Ejemplo propuesto:
Crea una variable con False y muestra su tipo de dato.

4 sorted()

✅ Ejemplo desarrollado:
nombres = ["María", "Ana", "Juan", "Pedro"]
print(sorted(nombres)) # Salida: ['Ana', 'Juan', 'María', 'Pedro']

💡 Ejemplo propuesto:
Ordena una lista de números en orden descendente.

5 sum()

✅ Ejemplo desarrollado:

valores = [5, 10, 15]


print(sum(valores)) # Salida: 30

💡 Ejemplo propuesto:
Suma todos los números del 1 al 50 usando range().

6 max() y min()

✅ Ejemplo desarrollado:

numeros = [3, 8, 2, 10]


print(max(numeros)) # Salida: 10
print(min(numeros)) # Salida: 2

💡 Ejemplo propuesto:
Encuentra el número más grande en [45, 12, 78, 23, 56].

7 round()

✅ Ejemplo desarrollado:

valor = 9.876
print(round(valor, 2)) # Salida: 9.88

💡 Ejemplo propuesto:
Redondea 5.6789 a un solo decimal.

8 abs()

✅ Ejemplo desarrollado:
print(abs(-15)) # Salida: 15

💡 Ejemplo propuesto:
Calcula la distancia entre -20 y 50 usando abs().

9 range()

✅ Ejemplo desarrollado:

for i in range(1, 11, 2):


print(i, end=" ") # Salida: 1 3 5 7 9

💡 Ejemplo propuesto:
Crea una lista de los números del 10 al 1 usando range().

🔟 zip()

✅ Ejemplo desarrollado:

productos = ["Laptop", "Teléfono", "Tablet"]


precios = [1000, 500, 300]

combinados = dict(zip(productos, precios))


print(combinados)
# Salida: {'Laptop': 1000, 'Teléfono': 500, 'Tablet': 300}

💡 Ejemplo propuesto:
Une dos listas: ["Rojo", "Verde", "Azul"] con ["Color primario", "Color
secundario", "Color terciario"].

11 map()

✅ Ejemplo desarrollado:

numeros = [1, 2, 3, 4, 5]
cuadrados = list(map(lambda x: x ** 2, numeros))
print(cuadrados) # Salida: [1, 4, 9, 16, 25]

💡 Ejemplo propuesto:
Convierte una lista de temperaturas en grados Celsius [0, 10, 20, 30] a Fahrenheit.
12 filter()

✅ Ejemplo desarrollado:

numeros = [1, 2, 3, 4, 5, 6, 7, 8]
pares = list(filter(lambda x: x % 2 == 0, numeros))
print(pares) # Salida: [2, 4, 6, 8]

💡 Ejemplo propuesto:
Filtra los nombres que empiezan con la letra "A" en ["Ana", "Luis", "Andrés",
"Pedro"].

13 enumerate()

✅ Ejemplo desarrollado:

python
CopiarEditar
tareas = ["Hacer la compra", "Estudiar Python", "Ir al gimnasio"]
for i, tarea in enumerate(tareas, 1):
print(f"{i}. {tarea}")

Salida:

1. Hacer la compra
2. Estudiar Python
3. Ir al gimnasio

💡 Ejemplo propuesto:
Muestra una lista de cinco comidas favoritas numeradas.
Palabra clave pass
La palabra clave pass en Python se usa cuando necesitas definir una estructura de código
(como una función, clase, bucle o condicional), pero sin implementar ninguna lógica en
ese momento.

🔹 Básicamente, pass evita errores de sintaxis y permite que el programa continúe


ejecutándose.

📌 1️⃣ pass en una función vacía

Si defines una función, pero aún no la implementas, puedes usar pass para que no genere
errores.

def funcion_aun_no_implementada():
pass # No hace nada por ahora

print("El programa sigue funcionando.")

✅ Salida: El programa sigue funcionando.

🔹 Sin pass, el código daría error porque Python espera instrucciones dentro de la
función.

📌 2️⃣ pass en un if vacío

Si aún no decides qué hacer en un if, puedes usar pass.

edad = 20

if edad >= 18:


pass # Luego implementaré esta parte
else:
print("Eres menor de edad.")

✅ El programa no da error, aunque el if esté vacío.

📌 3️⃣pass en una clase sin definir métodos aún


class MiClase:
pass # Definiré los atributos y métodos después

objeto = MiClase()
print(type(objeto)) # Salida: <class '__main__.MiClase'>

✅ Se crea la clase sin errores, aunque aún no haga nada.

📌 4️⃣pass en un bucle sin lógica todavía


for i in range(5):
pass # Luego pondré código aquí

print("Bucle terminado.")

✅ El código no se rompe, aunque el bucle no haga nada aún.

🚀 ¿Cuándo usar pass?

✅ Cuando estás estructurando tu código pero aún no implementas la lógica.


✅ Para evitar errores de sintaxis en funciones, clases, bucles o condicionales vacíos.
✅ En desarrollo iterativo, cuando primero defines la estructura y luego agregas detalles.

🔥 Diferencia entre pass y None

Característica pass None

¿Evita errores de sintaxis? ✅ Sí ❌ No

¿Hace que la función retorne algo? ❌ No ✅ Sí

¿Es un valor que se puede devolver? ❌ No ✅ Sí

📌 Ejemplo de None en una función:

def funcion_vacia():
return None # Devuelve un valor vacío

print(funcion_vacia()) # Salida: None

📌 Ejemplo con pass (no devuelve nada):

def funcion_con_pass():
pass

print(funcion_con_pass()) # Salida: None (porque no retorna nada)


🚀 Resumen

🔹 pass se usa cuando necesitas escribir código estructuralmente válido pero sin
implementar la lógica todavía.
🔹 Es útil en funciones, clases, condicionales y bucles vacíos para evitar errores de
sintaxis.
🔹 Diferente de None, que es un valor, mientras que pass solo actúa como un "espacio
reservado".

Determinación de tipos en Python


La determinación de tipos en Python se refiere a cómo el lenguaje maneja los tipos de
datos de las variables en tiempo de ejecución.

1️⃣ Python es de tipado dinámico

📌 En Python, no necesitas declarar el tipo de una variable. El intérprete lo asigna


automáticamente según el valor que almacena.

python
CopiarEditar
x = 10 # x es un int
y = 3.14 # y es un float
z = "Hola" # z es un str

print(type(x)) # Salida: <class 'int'>


print(type(y)) # Salida: <class 'float'>
print(type(z)) # Salida: <class 'str'>

✅ El tipo de x, y y z se determina automáticamente en tiempo de ejecución.

2️⃣ Función type()

🔹 Para saber el tipo de una variable, se usa la función type().

a = True
b = [1, 2, 3]
c = {"nombre": "BTC", "precio": 50000}

print(type(a)) # <class 'bool'>


print(type(b)) # <class 'list'>
print(type(c)) # <class 'dict'>
3️⃣ Verificación de tipos con isinstance()

🔹 Para verificar si una variable es de cierto tipo, se usa isinstance().

n = 100

if isinstance(n, int):
print("Es un número entero.") # ✅ Se imprime esto

📌 Se usa en trading para validar tipos de datos en APIs.


Ejemplo con Binance:

precio = "50000" # Datos pueden venir como string

if isinstance(precio, str):
precio = float(precio) # Convertimos a número

print(precio * 1.05) # Ajuste del 5% al precio

4️⃣ Anotaciones de tipo (Type Hinting)

🔹 Aunque Python no exige declarar tipos, se pueden sugerir con anotaciones de tipo.

def calcular_profit(inversion: float, ganancia: float) -> float:


return inversion * (1 + ganancia)

print(calcular_profit(1000, 0.2)) # Salida: 1200.0

✅ Esto ayuda a que el código sea más claro y fácil de mantener.

🚀 Conclusión

✅ Python determina los tipos automáticamente en tiempo de ejecución.


✅ Se usa type() y isinstance() para verificar tipos.
✅ Anotaciones de tipo ayudan a mejorar la legibilidad del código.

Argumento Key de funciones predefinidas


Los argumentos key en funciones predefinidas de Python permiten especificar una función
personalizada que se aplicará a cada elemento antes de procesarlo. Esto es útil para ordenar,
buscar o filtrar datos de manera más avanzada.

Se usa para especificar un criterio de ordenación o comparación. Se encuentra en


funciones como sorted(), min(), max() entre otras.

🔹 En resumen: key recibe una función que define la forma en que se evaluarán los
elementos para ordenarlos o compararlos.

La función sorted() en Python se usa para ordenar listas, tuplas u otros iterables y
tiene varias características clave:

📌 Características principales de sorted()

1️No modifica la lista original → Devuelve una nueva lista ordenada en lugar de
modificar la original.
2 Ordena en orden ascendente por defecto.
3 Permite orden personalizado con key.
4 Permite orden descendente con reverse=True.
5 Funciona con diferentes tipos de datos como números, cadenas y objetos.

📌 1. sorted(iterable, key=None, reverse=False)

🔹 Descripción: Ordena un iterable aplicando una función clave a sus elementos.


🔹 Parámetros:

 key: Función que transforma los elementos antes de ordenarlos.


 reverse: Si es True, ordena en orden descendente.

✅ Ejemplo desarrollado (ordenar por la segunda letra de cada palabra):

palabras = ["pera", "manzana", "kiwi", "naranja"]


ordenadas = sorted(palabras, key=lambda palabra: palabra[1])
print(ordenadas) # Salida: ['manzana', 'naranja', 'pera', 'kiwi']

💡 Ejemplo propuesto:
Ordena una lista de nombres por su última letra.

📌 2. max(iterable, key=None) y min(iterable, key=None)

🔹 Descripción: Encuentra el mayor o menor elemento usando una función clave.


✅ Ejemplo desarrollado (encontrar la palabra más larga):

frutas = ["manzana", "pera", "sandía", "kiwi"]


mas_larga = max(frutas, key=len)
print(mas_larga) # Salida: "manzana"

💡 Ejemplo propuesto:
Encuentra el número con más dígitos en [10, 1000, 50, 9999].

📌 3. min() con key

✅ Ejemplo desarrollado (número más cercano a 50):

numeros = [20, 35, 80, 60, 45]


cercano = min(numeros, key=lambda x: abs(x - 50))
print(cercano) # Salida: 45

💡 Ejemplo propuesto:
Encuentra la palabra con menos vocales en una lista.

Observacion:

¿Qué representa x o palabra en key=lambda x: x[-1]?

📌 En sorted(iterable, key=lambda x: x[-1]), el parámetro x (o palabra en el


segundo caso) representa cada elemento individual del iterable (en este caso, una lista de
palabras).

🔹 Ejemplo con x[-1] (última letra de cada palabra)


palabras = ["pera", "manzana", "kiwi", "naranja"]
ordenadas = sorted(palabras, key=lambda x: x[-1])
print(ordenadas)

📌 Proceso:

 "pera" → última letra 'a'


 "manzana" → última letra 'a'
 "kiwi" → última letra 'i'
 "naranja" → última letra 'a'

📝 Las palabras con la misma letra final ('a') se mantienen en su orden original.
🔹 Salida:

['pera', 'manzana', 'naranja', 'kiwi']


¿Qué hace palabra[1] en sorted(palabras, key=lambda palabra: palabra[1])?

📌 palabra[1] accede a la segunda letra de cada palabra.

🔹 Ejemplo con palabra[1] (ordenar por segunda letra)


palabras = ["pera", "manzana", "kiwi", "naranja"]
ordenadas = sorted(palabras, key=lambda palabra: palabra[1])
print(ordenadas)

📌 Proceso:

 "pera" → segunda letra 'e'


 "manzana" → segunda letra 'a'
 "kiwi" → segunda letra 'i'
 "naranja" → segunda letra 'a'

🔹 Orden alfabético por segunda letra:

python
CopiarEditar
['manzana', 'naranja', 'pera', 'kiwi']

¿Por qué x[-1] representa la última letra de cada palabra?

Cuando usamos sorted(palabras, key=lambda x: x[-1]), cada elemento de la lista


palabras es una cadena de texto.

Python permite acceder a los caracteres de una cadena usando indexación ([]), y los
índices pueden ser positivos o negativos:

✅ Indexación positiva:
Los índices positivos empiezan desde 0 y avanzan hacia la derecha.

palabra = "python"
# p y t h o n
# 0 1 2 3 4 5 (positivos)

palabra[0] → 'p'
palabra[1] → 'y'
palabra[2] → 't'
...

✅ Indexación negativa:
Los índices negativos empiezan desde -1 y avanzan hacia la izquierda.

palabra = "python"
# p y t h o n
# -6 -5 -4 -3 -2 -1 (negativos)

palabra[-1] → 'n' (última letra)


palabra[-2] → 'o' (penúltima letra)
palabra[-3] → 'h'
...

📌 Aplicándolo a una lista de palabras

Cuando usamos:

sorted(palabras, key=lambda x: x[-1])

 x representa cada palabra en la lista.


 x[-1] extrae la última letra de cada palabra.
 Luego, sorted() usa esa letra para ordenar.

✅ Ejemplo paso a paso:

palabras = ["pera", "manzana", "kiwi", "naranja"]


ordenadas = sorted(palabras, key=lambda x: x[-1])
print(ordenadas)

🔹 Cómo se comparan las palabras:

Palabra Última letra (x[-1])

"pera" 'a'

"manzana" 'a'

"kiwi" 'i'

"naranja" 'a'

📌 sorted() compara esas letras ('a', 'a', 'i', 'a') y ordena en orden alfabético:

['pera', 'manzana', 'naranja', 'kiwi']

⚠ Si varias palabras tienen la misma última letra (como "pera" y "manzana"), se


mantienen en su orden original relativo.

📌 ¿Qué pasa si usamos x[-2] en lugar de x[-1]?

Ahora estaríamos ordenando por la penúltima letra en lugar de la última.


✅ Ejemplo:

palabras = ["pera", "manzana", "kiwi", "naranja"]


ordenadas = sorted(palabras, key=lambda x: x[-2])
print(ordenadas)

🔹 Comparación por penúltima letra (x[-2]):

Palabra Penúltima letra (x[-2])

"pera" 'r'

"manzana" 'n'

"kiwi" 'w'

"naranja" 'j'

📝 Orden alfabético de esas letras: 'j', 'n', 'r', 'w'


🔹 Resultado:

['naranja', 'manzana', 'pera', 'kiwi']

🔹 Resumen

Expresión ¿Qué hace?

x[-1] Ordena por la última letra de cada palabra.

x[-2] Ordena por la penúltima letra de cada palabra.

x[1] Ordena por la segunda letra de cada palabra.

📌 Conclusión: x[-1] es simplemente la forma en que Python accede a la última letra de


una cadena, gracias a la indexación negativa.

1 Ordenar por la longitud de las palabras

📌 En lugar de ordenar por una letra específica, podemos ordenar por la cantidad de letras en
cada palabra.

✅ Ejemplo:

palabras = ["pera", "manzana", "kiwi", "naranja"]


ordenadas = sorted(palabras, key=len)
print(ordenadas) # Salida: ['kiwi', 'pera', 'naranja', 'manzana']

💡 Explicación: key=len usa la función len() para ordenar por la longitud de cada palabra.

2 Ordenar ignorando mayúsculas y minúsculas

📌 Si tenemos palabras con mayúsculas y queremos ordenarlas sin que Python distinga entre
A y a, podemos convertir todo a minúsculas con str.lower.

✅ Ejemplo:

palabras = ["Zorro", "Árbol", "abeja", "perro"]


ordenadas = sorted(palabras, key=str.lower)
print(ordenadas) # Salida: ['abeja', 'Árbol', 'perro', 'Zorro']

💡 Explicación: key=str.lower convierte cada palabra a minúsculas antes de ordenarlas.

3 Ordenar números por su valor absoluto

📌 Si tenemos números negativos y queremos ordenarlos sin importar el signo, usamos


abs().

✅ Ejemplo:

numeros = [-10, 5, -3, 8, 0, -1]


ordenados = sorted(numeros, key=abs)
print(ordenados) # Salida: [0, -1, -3, 5, -10, 8]

💡 Explicación: key=abs ordena los números según su distancia al 0.

4 Ordenar listas de tuplas

📌 Si tenemos una lista de tuplas y queremos ordenarlas por el segundo valor de cada una,
usamos lambda x: x[1].

✅ Ejemplo:

productos = [("manzana", 3), ("banana", 1), ("cereza", 5)]


ordenados = sorted(productos, key=lambda x: x[1])
print(ordenados) # Salida: [('banana', 1), ('manzana', 3), ('cereza',
5)]

💡 Explicación: lambda x: x[1] ordena según el segundo elemento de cada tupla.


5 Ordenar por cantidad de vocales

📌 Podemos contar las vocales de cada palabra y ordenar usando esa cantidad (ordenar por
cantidad de vocales).

✅ Ejemplo:

def contar_vocales(palabra):
return sum(1 for letra in palabra if letra in "aeiouAEIOU")

palabras = ["cielo", "montaña", "río", "mar"]


ordenadas = sorted(palabras, key=contar_vocales)
print(ordenadas) # Salida: ['mar', 'río', 'cielo', 'montaña']

💡 Explicación: key=contar_vocales ordena las palabras según cuántas vocales tienen.

Observacion:

Vamos a desglosarlo paso a paso. 🔍

sum(1 for letra in palabra if letra in "aeiouAEIOU")

Este código cuenta cuántas vocales hay en la variable palabra. Ahora veamos cómo
funciona cada parte.

1 Comprensión de la expresión generadora

📌 Parte principal:

(1 for letra in palabra if letra in "aeiouAEIOU")

🔹 Esto es una expresión generadora, que es como una comprensión de listas, pero sin usar
[].

💡 Explicación:

 for letra in palabra → Recorre cada letra en la palabra.


 if letra in "aeiouAEIOU" → Filtra solo las vocales (minúsculas y mayúsculas).
 1 → Genera un 1 por cada vocal encontrada.

✅ Ejemplo práctico:

palabra = "programación"
resultado = (1 for letra in palabra if letra in "aeiouAEIOU")
print(list(resultado)) # [1, 1, 1, 1, 1]

🔹 Como "programación" tiene 5 vocales, el generador devuelve [1, 1, 1, 1, 1].

2 Uso de sum()

📌 Parte final:

sum(1 for letra in palabra if letra in "aeiouAEIOU")

🔹 sum() suma todos los 1 generados, obteniendo la cantidad de vocales en la palabra.

✅ Ejemplo completo:

palabra = "python"
cantidad_vocales = sum(1 for letra in palabra if letra in "aeiouAEIOU")
print(cantidad_vocales) # Salida: 1

🔹 "python" solo tiene una vocal ('o'), por eso la salida es 1.

🔹 Explicación detallada con otro ejemplo


palabra = "elefante"
cantidad_vocales = sum(1 for letra in palabra if letra in "aeiouAEIOU")
print(cantidad_vocales) # Salida: 4

📌 Paso a paso:

Letra ¿Es vocal? ¿Se suma 1?

'e' ✅ Sí ✅1

'l' ❌ No ❌0

'e' ✅ Sí ✅1

'f' ❌ No ❌0

'a' ✅ Sí ✅1

'n' ❌ No ❌0

't' ❌ No ❌0

'e' ✅ Sí ✅1

📌 Suma total: 1 + 1 + 1 + 1 = 4
🔹 Resumen
Código ¿Qué hace?

sum(1 for letra in palabra if letra in Cuenta cuántas vocales hay en


"aeiouAEIOU") palabra.

(1 for letra in palabra if letra in Genera un 1 por cada vocal


"aeiouAEIOU") encontrada.

Suma esos 1 para obtener el total de


sum(...)
vocales.

📌 4. filter(function, iterable)

🔹 Descripción: Filtra los elementos de un iterable según una condición.

✅ Ejemplo desarrollado (filtrar palabras que empiezan con vocal):

palabras = ["avión", "barco", "isla", "elefante", "tren"]


vocales = list(filter(lambda palabra: palabra[0] in "aeiou", palabras))
print(vocales) # Salida: ['avión', 'isla', 'elefante']

💡 Ejemplo propuesto:
Filtra los números múltiplos de 5 en [10, 23, 45, 60, 78].

📌 5. map(function, iterable)

🔹 Descripción: Aplica una función a cada elemento de un iterable.

✅ Ejemplo desarrollado (convertir nombres a mayúsculas):

nombres = ["ana", "juan", "pedro"]


mayusculas = list(map(str.upper, nombres))
print(mayusculas) # Salida: ['ANA', 'JUAN', 'PEDRO']

💡 Ejemplo propuesto:
Convierte una lista de números a su valor absoluto.

📌 6. enumerate(iterable, start=0)

🔹 Descripción: Asigna índices a los elementos de un iterable.


✅ Ejemplo desarrollado (numerar elementos desde 1):

tareas = ["Estudiar", "Hacer ejercicio", "Leer"]


for i, tarea in enumerate(tareas, start=1):
print(f"{i}. {tarea}")

💡 Ejemplo propuesto:
Crea una lista numerada de ciudades favoritas.

Estos son algunos de los usos más útiles del argumento key en funciones predefinidas.
¡Dime si quieres más ejemplos o explicaciones! 🚀

4 Ordenar con un criterio personalizado (key)

Podemos definir cómo se ordenan los elementos con key.

✅ Ejemplo: Ordenar por la última letra de cada palabra

palabras = ["python", "binance", "trading", "futuro", "criptos"]


ordenadas = sorted(palabras, key=lambda x: x[-1])

print(ordenadas)

🔹 Salida:

['binance', 'criptos', 'futuro', 'python', 'trading']

📌 Ordena según la última letra de cada palabra.

📌 Aplicación en Trading (Ordenar por precio de criptos)


cripto_precios = [
("BTC", 44000),
("ETH", 3100),
("SOL", 105),
("BNB", 400)
]

# Ordenar por precio de menor a mayor


ordenadas = sorted(cripto_precios, key=lambda x: x[1])

print(ordenadas)

🔹 Salida:

[('SOL', 105), ('BNB', 400), ('ETH', 3100), ('BTC', 44000)]

📌 Ordena las criptos según su precio.


✅ Resumen Final

🔹 sorted() ordena sin modificar el original.


🔹 Usa reverse=True para orden descendente.
🔹 Usa key para ordenar con reglas personalizadas.
🔹 Útil en trading para ordenar precios, volúmenes, etc.

📌 Ejemplo 1: sorted() con key

Ordenar la lista “palabras” por longitud en lugar del orden alfabético.

palabras = ["manzana", "kiwi", "banana", "uva"]

ordenadas = sorted(palabras, key=len)

print(ordenadas)

✅ Salida: ['uva', 'kiwi', 'banana', 'manzana']

📌 Explicación: Se usa len como criterio para ordenar por la cantidad de letras.

📌 Ejemplo 2: min() y max() con key

Obtener la palabra más corta y la más larga.

palabras = ["python", "java", "c", "javascript"]

mas_corta = min(palabras, key=len)


mas_larga = max(palabras, key=len)

print("Más corta:", mas_corta)


print("Más larga:", mas_larga)

✅ Salida:

Más corta: c
Más larga: javascript

📌 Ejemplo 3: sorted() con lambda en números

Ordenar números en función del valor absoluto.


numeros = [3, -8, 1, -5, 10]

ordenados = sorted(numeros, key=lambda x: abs(x))

print(ordenados)

✅ Salida: [1, 3, -5, -8, 10]


📌 Explicación: Se usa abs() para ordenar ignorando el signo.

📌 Ejemplo 4: Ordenar una lista de diccionarios

Ordenar personas por edad.

personas = [
{"nombre": "Carlos", "edad": 35},
{"nombre": "Ana", "edad": 22},
{"nombre": "Pedro", "edad": 29}
]

ordenadas = sorted(personas, key=lambda p: p["edad"])

print(ordenadas)

✅ Salida:

[
{'nombre': 'Ana', 'edad': 22},
{'nombre': 'Pedro', 'edad': 29},
{'nombre': 'Carlos', 'edad': 35}
]

📌 Ejemplo 5: Aplicado a Binance (Ordenar criptos por precio)


import requests

# Obtener datos de Binance


url = "https://api.binance.com/api/v3/ticker/price"
response = requests.get(url).json()

# Ordenar las criptos por precio (de menor a mayor)


ordenadas = sorted(response[:10], key=lambda x: float(x["price"]))

# Mostrar las 5 más baratas


print(ordenadas[:5])

✅ Salida: Lista de criptos ordenadas por precio.

📌 Conclusión

El argumento key permite personalizar el criterio de comparación en funciones como:


 sorted()
 min()
 max()
 sorted(lista, key=función)

Es muy útil en ordenamientos avanzados, especialmente cuando trabajas con listas de


diccionarios o datos de APIs como Binance.

🔹 ¿Quieres más ejemplos o algo aplicado a trading? 🚀

¡Genial! Aquí tienes más ejemplos avanzados combinando funciones, listas e índices
para que practiques. 🚀

📌 1 Duplicar valores en índices impares usando función


def duplicar_impares(lista):
for i in range(len(lista)):
if i % 2 != 0: # Si el índice es impar
lista[i] *= 2 # Duplicamos el valor
return lista

numeros = [3, 5, 8, 10, 12, 15]


print(duplicar_impares(numeros))

✅ Salida: [3, 10, 8, 20, 12, 30]

📌 2 Intercambiar elementos en índices pares e impares


def intercambiar(lista):
for i in range(0, len(lista) - 1, 2): # Iteramos de 2 en 2
lista[i], lista[i + 1] = lista[i + 1], lista[i] # Swap
return lista

numeros = [1, 2, 3, 4, 5, 6]
print(intercambiar(numeros))

✅ Salida: [2, 1, 4, 3, 6, 5]
📌 Explicación: Se intercambian los elementos en índices pares e impares.

📌 3 Obtener los índices de los valores negativos


def indices_negativos(lista):
return [i for i in range(len(lista)) if lista[i] < 0] # List
Comprehension

numeros = [4, -2, 7, -5, 10, -8]


print(indices_negativos(numeros))
✅ Salida: [1, 3, 5]
📌 Explicación: Devuelve los índices donde hay valores negativos.

📌 4 Reemplazar números primos por 0


def es_primo(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True

def reemplazar_primos(lista):
for i in range(len(lista)):
if es_primo(lista[i]):
lista[i] = 0 # Sustitución por 0
return lista

numeros = [2, 4, 5, 9, 11, 15, 17]


print(reemplazar_primos(numeros))

✅ Salida: [0, 4, 0, 9, 0, 15, 0]


📌 Explicación: Los números primos son reemplazados por 0.

📌 5 Aplicar descuento del 10% en precios mayores a 1000


def aplicar_descuento(precios):
return [precio * 0.9 if precio > 1000 else precio for precio in
precios]

precios = [500, 1500, 700, 2000, 300]


print(aplicar_descuento(precios))

✅ Salida: [500, 1350.0, 700, 1800.0, 300]

📌 6 Aplicado a Binance: Filtrar criptos con precio mayor a 50K


import requests

# Obtener datos de Binance


url = "https://api.binance.com/api/v3/ticker/price"
response = requests.get(url).json()

# Filtrar criptos con precio mayor a 50,000 USD


altas = [cripto for cripto in response if float(cripto["price"]) > 50000]

# Mostrar las primeras 5


print(altas[:5])
✅ Salida: Lista de criptos con precio mayor a 50K.

📌 7 Cifrar un mensaje desplazando letras en 3 posiciones


def cifrar(mensaje):
alfabeto = "abcdefghijklmnopqrstuvwxyz"
cifrado = ""

for letra in mensaje:


if letra in alfabeto:
nueva_pos = (alfabeto.index(letra) + 3) % len(alfabeto)
cifrado += alfabeto[nueva_pos]
else:
cifrado += letra # Mantener espacios y símbolos

return cifrado

print(cifrar("hola mundo"))

✅ Salida: "krod pxqgr"


📌 Explicación: Se desplazan las letras 3 posiciones en el alfabeto.

📌 Conclusión

🔥 Estos ejercicios combinan: ✅ Funciones (def)


✅ Listas ([])
✅ Índices (for i in range(len(lista)))
✅ Condiciones (if lista[i] < 0)
✅ List Comprehension

Ejemplos avanzados combinando funciones, listas,


índices y el argumento key en Python. 🚀

📌 1 Ordenar una lista de números según la cantidad de dígitos

📌 Usamos key=len en números convertidos a string.

numeros = [100, 2, 34567, 89, 1234]

ordenados = sorted(numeros, key=lambda x: len(str(x)))


print(ordenados)

✅ Salida: [2, 89, 100, 1234, 34567]


📌 Explicación: Se ordena por la cantidad de dígitos.

📌 2 Encontrar la palabra más larga en una lista

📌 Usamos max() con key=len.

palabras = ["python", "machine", "inteligencia", "deep"]

mas_larga = max(palabras, key=len)

print(mas_larga)

✅ Salida: "inteligencia"
📌 Explicación: max() devuelve la palabra más larga.

📌 3 Ordenar una lista de listas por la suma de sus elementos


listas = [[5, 2, 3], [1, 8], [4, 4, 4, 4], [10]]

ordenadas = sorted(listas, key=lambda x: sum(x))

print(ordenadas)

✅ Salida: [[10], [1, 8], [5, 2, 3], [4, 4, 4, 4]]


📌 Explicación: Se ordenan por la suma de sus elementos.

📌 4 Ordenar palabras por su última letra


palabras = ["perro", "gato", "elefante", "zorro"]

ordenadas = sorted(palabras, key=lambda x: x[-1])

print(ordenadas)

✅ Salida: ['elefante', 'gato', 'perro', 'zorro']


📌 Explicación: Se ordenan según la última letra.

Observacion:

La expresión key=lambda x: x[-1] en sorted() le indica a Python que ordene la lista


basándose en la última letra de cada palabra.
📌 Explicación paso a paso

✅ x → Representa cada elemento de la lista (una palabra).


✅ x[-1] → Extrae la última letra de la palabra.
✅ key=lambda x: x[-1] → Indica que el criterio de orden será esa última letra.

🧩 Ejemplo práctico
palabras = ["python", "binance", "trading", "futuro", "criptos"]
ordenadas = sorted(palabras, key=lambda x: x[-1])

print(ordenadas)

🔹 Salida:

['binance', 'criptos', 'futuro', 'python', 'trading']

📌 Ordena según la última letra:

 binance (e)
 criptos (s)
 futuro (o)
 python (n)
 trading (g)

📌 Aplicación en trading

Supongamos que tenemos una lista de criptomonedas y queremos ordenarlas según la


última letra del símbolo.

criptos = ["BTCUSDT", "ETHUSDT", "SOLUSDT", "BNBUSDT"]


ordenadas = sorted(criptos, key=lambda x: x[-1])

print(ordenadas)

🔹 Salida:

['BTCUSDT', 'ETHUSDT', 'SOLUSDT', 'BNBUSDT']

📌 Aquí todas terminan en "T", por lo que mantienen su orden original.

🔥 ¿Quieres más ejemplos con Binance? 🚀


Observacion

📌 key=lambda x: x[-1] significa que la función sorted() usará la última letra de cada
palabra como criterio de ordenación.

📌 Explicación de key=lambda x: x[-1]

🔹 key= → Define la regla de ordenamiento.


🔹 lambda x: x[-1] → Es una función anónima que toma cada palabra (x) y devuelve su
última letra (x[-1]) para ordenar en base a ella.

🧩 Ejemplo paso a paso


palabras = ["manzana", "pera", "uva", "banana"]
ordenadas = sorted(palabras, key=lambda x: x[-1])

print(ordenadas)

🔹 Salida:

['banana', 'uva', 'pera', 'manzana']

📌 Explicación del orden:

 "banana" → termina en "a"


 "uva" → termina en "a"
 "pera" → termina en "a"
 "manzana" → termina en "a"

Como hay empate, se mantiene el orden original.

📌 Aplicación en Trading: Ordenar Criptos por Última Letra del


Símbolo
cripto_precios = [
("BTCUSDT", 44000),
("ETHUSDT", 3100),
("SOLUSDT", 105),
("BNBUSDT", 400)
]

# Ordenar por la última letra del símbolo


ordenadas = sorted(cripto_precios, key=lambda x: x[0][-1])

print(ordenadas)
🔹 Salida:

[('BTCUSDT', 44000), ('ETHUSDT', 3100), ('SOLUSDT', 105), ('BNBUSDT',


400)]

📌 Aquí todas terminan en "T", por lo que mantienen su orden original.

✅ Resumen Final

🔹 key=lambda x: x[-1] → Ordena usando la última letra de cada palabra.


🔹 lambda crea una función rápida sin def.
🔹 Se usa en listas de palabras, números o datos de trading.

🔥 ¿Quieres otro ejemplo aplicado a Binance? 🚀

Alternativas a lambda en sorted()

Aquí hay tres formas diferentes de usar key= en sorted().

1️⃣Usar una función definida con def

En lugar de lambda, puedes definir una función normal y usarla en key.

def ultima_letra(palabra):
return palabra[-1]

palabras = ["manzana", "pera", "uva", "banana"]


ordenadas = sorted(palabras, key=ultima_letra)

print(ordenadas)

🔹 Salida:

['banana', 'uva', 'pera', 'manzana']

📌 Hace lo mismo que lambda x: x[-1], pero con una función normal.

2 Usar operator.itemgetter() para listas de tuplas

Si tienes una lista de tuplas y quieres ordenar por un índice específico, usa
operator.itemgetter().
from operator import itemgetter

cripto_precios = [
("BTC", 44000),
("ETH", 3100),
("SOL", 105),
("BNB", 400)
]

# Ordenar por precio (índice 1)


ordenadas = sorted(cripto_precios, key=itemgetter(1))

print(ordenadas)

🔹 Salida:

[('SOL', 105), ('BNB', 400), ('ETH', 3100), ('BTC', 44000)]

📌 Ordena las criptos por precio de menor a mayor.

3️Usar str.lower para ordenar sin importar mayúsculas y minúsculas


palabras = ["Binance", "trading", "Python", "bitcoin"]
ordenadas = sorted(palabras, key=str.lower)

print(ordenadas)

🔹 Salida:

['Binance', 'bitcoin', 'Python', 'trading']

📌 Ordena ignorando mayúsculas y minúsculas.

✅ Resumen Final
Método Uso

lambda Rápido y simple para funciones cortas.

def Para funciones más largas o reutilizables.

operator.itemgetter() Ordenar por índice en listas de tuplas.

str.lower Ordenar cadenas ignorando mayúsculas.


📌 5 Encontrar el número más cercano a 100 en una lista
numeros = [50, 120, 98, 150, 101]

cercano = min(numeros, key=lambda x: abs(x - 100))

print(cercano)

✅ Salida: 98
📌 Explicación: abs(x - 100) mide la cercanía a 100.

📌 6 Ordenar criptomonedas por precio en Binance


import requests

# Obtener datos de Binance


url = "https://api.binance.com/api/v3/ticker/price"
response = requests.get(url).json()

# Ordenar criptos por precio


ordenadas = sorted(response[:10], key=lambda x: float(x["price"]))

# Mostrar las 5 más baratas


print(ordenadas[:5])

✅ Salida: Lista de criptos ordenadas de menor a mayor precio.

Observación
response[:10]

La expresión response[:10] en Python extrae los primeros 10 elementos de la variable


response.

📌 Explicación paso a paso

✅ response[:] → Toma todo el contenido de response.


✅ response[:10] → Toma desde el inicio (índice 0) hasta el índice 10 (sin incluirlo).

Ejemplo 1: Con listas


numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
print(numeros[:10])
🔹 Salida:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

📌 Se extraen los primeros 10 números de la lista.

🧩 Ejemplo 2: Con cadenas de texto


mensaje = "Hola, bienvenido a Binance Trading!"
print(mensaje[:10])

🔹 Salida:

'Hola, bien'

📌 Se extraen los primeros 10 caracteres de la cadena.

🚀 Aplicación en Trading
📌 Ejemplo con datos de Binance:

precios = [44000, 44100, 44250, 43950, 43800, 44500, 44600, 44750, 44900,
45000, 45100]
ultimos_movimientos = precios[:10]

print(ultimos_movimientos)

🔹 Salida:

[44000, 44100, 44250, 43950, 43800, 44500, 44600, 44750, 44900, 45000]

📌 Se extraen los 10 primeros precios de la lista.

✅ Resumen
🔹 response[:10] extrae los primeros 10 elementos de una lista, cadena o cualquier
objeto iterable.
🔹 Se usa mucho en slicing para limitar datos y hacer análisis.
📌 7 Ordenar empleados por edad (Lista de Diccionarios)
empleados = [
{"nombre": "Carlos", "edad": 35},
{"nombre": "Ana", "edad": 22},
{"nombre": "Pedro", "edad": 29}
]

ordenados = sorted(empleados, key=lambda e: e["edad"])

print(ordenados)

✅ Salida:

[
{'nombre': 'Ana', 'edad': 22},
{'nombre': 'Pedro', 'edad': 29},
{'nombre': 'Carlos', 'edad': 35}
]

📌 Explicación: Se ordenan los diccionarios por la clave "edad".

📌 8 Ordenar una lista de strings por la cantidad de vocales


def contar_vocales(palabra):
return sum(1 for letra in palabra.lower() if letra in "aeiou")

palabras = ["python", "machine", "aprendizaje", "modelo"]

ordenadas = sorted(palabras, key=contar_vocales)

print(ordenadas)

✅ Salida: ['python', 'modelo', 'machine', 'aprendizaje']


📌 Explicación: Se ordenan por cantidad de vocales.

📌 9 Ordenar productos por precio con descuento


productos = [
{"nombre": "Laptop", "precio": 1200, "descuento": 0.1},
{"nombre": "Celular", "precio": 800, "descuento": 0.2},
{"nombre": "Tablet", "precio": 400, "descuento": 0.15}
]

ordenados = sorted(productos, key=lambda p: p["precio"] * (1 -


p["descuento"]))

print(ordenados)

✅ Salida: Ordenados por precio descontando el descuento.


📌 Conclusión

🔹 ¿Qué aprendimos?
✅ Cómo usar key en funciones como sorted(), max(), min().
✅ Cómo aplicar key en listas, índices y diccionarios.
✅ Cómo usarlo con datos reales (Binance, listas anidadas, diccionarios).

🔥 ¿Quieres más ejemplos o algo aplicado a trading? 🚀

📌 Problemas propuestos con el argumento key en sorted()

Aquí tienes varios ejercicios prácticos para dominar el uso de key en sorted() con listas,
funciones lambda e índices.

🧩 1 Ordenar por la cantidad de dígitos en un número

📌 Problema: Dada una lista de números, ordénalos por la cantidad de dígitos (de menor a
mayor).

✅ Ejemplo:

numeros = [100, 2, 3456, 89, 10]

🔹 Salida esperada: [2, 10, 100, 89, 3456] (porque 2 y 10 tienen menos dígitos).

💡 Pista: Usa key=lambda x: len(str(x)).

🧩 2 Ordenar nombres por su última letra

📌 Problema: Dada una lista de nombres, ordénalos según la última letra de cada nombre.

✅ Ejemplo:

nombres = ["Ana", "Luis", "Carlos", "Elena", "Juan"]

🔹 Salida esperada: ["Ana", "Elena", "Carlos", "Luis", "Juan"] (ordenado según


la última letra).

💡 Pista: Usa key=lambda x: x[-1].


🧩 3 Ordenar números por su valor absoluto, pero priorizando
negativos

📌 Problema: Dada una lista de números positivos y negativos, ordénalos por su valor
absoluto, pero si hay empate, el número negativo debe ir antes.

✅ Ejemplo:

numeros = [4, -7, 2, -2, 10, -4]

🔹 Salida esperada: [-2, 2, -4, 4, -7, 10]

💡 Pista: Usa key=lambda x: (abs(x), x).

🧩 4 Ordenar palabras por su número de vocales

📌 Problema: Dada una lista de palabras, ordénalas por la cantidad de vocales que
contienen.

✅ Ejemplo:

palabras = ["python", "binance", "trading", "criptos", "futuro"]

🔹 Salida esperada: ["trading", "futuro", "criptos", "python", "binance"]


(porque "binance" tiene más vocales).

💡 Pista: Crea una función para contar vocales y úsala en key.

🧩 5 Ordenar criptomonedas por capitalización de mercado

📌 Problema: Tienes una lista de criptomonedas con su capitalización de mercado (en miles
de millones). Ordena la lista de menor a mayor capitalización.

✅ Ejemplo:

criptos = [
("Bitcoin", 850),
("Ethereum", 400),
("Solana", 80),
("Cardano", 70),
("XRP", 50)
]
🔹 Salida esperada: [("XRP", 50), ("Cardano", 70), ("Solana", 80),
("Ethereum", 400), ("Bitcoin", 850)]

💡 Pista: Usa key=lambda x: x[1].

🚀 ¿Listo para resolverlos?

🔥 ¡Inténtalo y dime si necesitas ayuda! 🚀


Función lambda en Python
Una función lambda es una función anónima en Python que se define en una sola línea
sin necesidad de usar def.

📌 Sintaxis:

lambda argumentos: expresión

 No tiene nombre, pero se puede asignar a una variable.


 Se usa para funciones cortas y simples.

📌 1 Ejemplo básico: Duplicar un número


duplicar = lambda x: x * 2
print(duplicar(5)) # Salida: 10

📌 Explicación: lambda x: x * 2 es equivalente a:

def duplicar(x):
return x * 2

📌 2 Sumar dos números


sumar = lambda a, b: a + b
print(sumar(3, 7)) # Salida: 10

📌 3 Elevar un número a una potencia


potencia = lambda base, exponente: base ** exponente
print(potencia(2, 3)) # Salida: 8

📌 4 Usar lambda con sorted() (Ordenar palabras por longitud)


palabras = ["python", "aprendizaje", "deep", "inteligencia"]
ordenadas = sorted(palabras, key=lambda x: len(x))
print(ordenadas)

✅ Salida: ['deep', 'python', 'aprendizaje', 'inteligencia']

📌 Explicación: lambda x: len(x) devuelve la longitud de cada palabra.


📌 5 Filtrar números pares con filter()
numeros = [1, 2, 3, 4, 5, 6]
pares = list(filter(lambda x: x % 2 == 0, numeros))
print(pares) # Salida: [2, 4, 6]

📌 Explicación: filter(lambda x: x % 2 == 0, numeros) selecciona solo los números


pares.

📌 6 Usar lambda con map() (Multiplicar cada número por 3)


numeros = [1, 2, 3, 4, 5]
multiplicados = list(map(lambda x: x * 3, numeros))
print(multiplicados) # Salida: [3, 6, 9, 12, 15]

📌 Explicación: map() aplica la función lambda x: x * 3 a cada número de la lista.

📌 7 Usar lambda con reduce() (Multiplicación acumulativa)


from functools import reduce

numeros = [1, 2, 3, 4, 5]
producto = reduce(lambda x, y: x * y, numeros)
print(producto) # Salida: 120

📌 Explicación: reduce(lambda x, y: x * y, numeros) multiplica todos los números


en la lista:
1 * 2 * 3 * 4 * 5 = 120.

📌 8 Aplicado a Binance: Ordenar criptos por precio


import requests

# Obtener datos de Binance


url = "https://api.binance.com/api/v3/ticker/price"
response = requests.get(url).json()

# Ordenar criptos por precio


ordenadas = sorted(response[:10], key=lambda x: float(x["price"]))

print(ordenadas[:5]) # Muestra las 5 criptos más baratas

📌 Explicación: lambda x: float(x["price"]) convierte el precio en número y lo usa


para ordenar.

🎯 ¿Cuándo usar lambda?


✅ Cuando necesitas una función corta y simple.
✅ Para ordenar, filtrar o transformar datos rápidamente.
✅ En funciones que se usan una sola vez.

Aquí tienes varios ejemplos avanzados de lambda con listas en Python. 🚀

📌 1 Elevar al cuadrado cada número de una lista con map()


numeros = [1, 2, 3, 4, 5]
cuadrados = list(map(lambda x: x ** 2, numeros))
print(cuadrados) # Salida: [1, 4, 9, 16, 25]

📌 Explicación: map() aplica lambda x: x**2 a cada número.

📌 2 Filtrar los números impares con filter()


numeros = [10, 15, 21, 30, 33, 42]
impares = list(filter(lambda x: x % 2 != 0, numeros))
print(impares) # Salida: [15, 21, 33]

📌 Explicación: filter(lambda x: x % 2 != 0, numeros) deja solo los impares.

📌 3 Ordenar una lista de tuplas (Nombre, Edad)


personas = [("Carlos", 35), ("Ana", 22), ("Pedro", 29)]
ordenadas = sorted(personas, key=lambda p: p[1]) # Ordena por edad
print(ordenadas)

✅ Salida: [('Ana', 22), ('Pedro', 29), ('Carlos', 35)]

📌 Explicación: Se ordena usando la segunda posición (p[1]) de cada tupla.

📌 4 Obtener la longitud de cada palabra en una lista


palabras = ["python", "machine", "aprendizaje", "modelo"]
longitudes = list(map(lambda x: len(x), palabras))
print(longitudes) # Salida: [6, 7, 11, 6]

📌 Explicación: lambda x: len(x) devuelve la cantidad de letras.

📌 5 Multiplicar elementos según su índice


numeros = [2, 3, 5, 7]
multiplicados = [num * i for i, num in enumerate(numeros)]
print(multiplicados) # Salida: [0, 3, 10, 21]
📌 Explicación: Se multiplica cada número por su índice.

📌 6 Lista de números positivos y negativos separados


numeros = [10, -5, 7, -8, 3, -1]
positivos = list(filter(lambda x: x > 0, numeros))
negativos = list(filter(lambda x: x < 0, numeros))

print("Positivos:", positivos) # [10, 7, 3]


print("Negativos:", negativos) # [-5, -8, -1]

📌 Explicación: Separamos los positivos y negativos con filter().

📌 7 Ordenar palabras por la última letra


palabras = ["perro", "gato", "elefante", "zorro"]
ordenadas = sorted(palabras, key=lambda x: x[-1])
print(ordenadas)

✅ Salida: ['elefante', 'gato', 'perro', 'zorro']

📌 Explicación: Se usa x[-1] para ordenar por la última letra.

📌 8 Aplicado a Binance: Ordenar criptomonedas por precio


import requests

# Obtener datos de Binance


url = "https://api.binance.com/api/v3/ticker/price"
response = requests.get(url).json()

# Convertir los precios a flotantes y ordenar


ordenadas = sorted(response[:10], key=lambda x: float(x["price"]))

print(ordenadas[:5]) # Muestra las 5 criptos más baratas

📌 Explicación: lambda x: float(x["price"]) convierte el precio en número para


ordenar.

🔥 Conclusión

✅ lambda es útil con map(), filter(), sorted().


✅ Se usa para transformar listas, ordenar datos y filtrar valores.
✅ Se aplica a datos reales, como precios de criptomonedas en Binance.
🔥 ¿Quieres más ejemplos aplicados a trading o machine learning? 🚀

También podría gustarte