s谩bado, 9 de agosto de 2025

馃搶 Reto Python – L贸gica y estructuras de control

Escribe una funci贸n en Python que reciba una lista de n煤meros enteros y devuelva:

  • Una nueva lista con los n煤meros 煤nicos y ordenados de menor a mayor

  • El n煤mero que m谩s se repite y cu谩ntas veces aparece

Ejemplo de entrada:


[4, 2, 7, 4, 2, 9, 4, 1]

Salida esperada:


Lista ordenada 煤nica: [1, 2, 4, 7, 9] N煤mero m谩s frecuente: 4 (3 veces)

    馃摙 ¿Te animas a resolverlo?
    Publicar茅 la soluci贸n completa en mi canal de YouTube 馃憞
        馃帴 youtube.com/@josecodetech

Ya tienes la solucion aqui:





domingo, 3 de agosto de 2025

馃攼 Python Nivel 3 – Parte 5: Consumo de APIs con Autenticaci贸n (Tokens, Headers)

 

馃幆 ¿Qu茅 aprender谩s?

✅ C贸mo consumir APIs que requieren autenticaci贸n
✅ Diferencias entre APIs con tokens, headers o claves API
✅ Uso de tokens tipo JWT
✅ Ejemplo real con la API de CoinCap
✅ C贸mo automatizar consultas autenticadas


馃實 API real: CoinCap (criptomonedas)

馃敆 Documentaci贸n: https://docs.coincap.io/

Esta API ofrece cotizaciones de criptomonedas. Algunas rutas requieren autenticaci贸n con API Key v铆a encabezado.


馃摝 Paso 1: Instala requests


pip install requests

馃攼 Paso 2: Crea una cuenta y consigue tu API KEY

  1. Ve a https://coincap.io/

  2. Crea cuenta gratuita

  3. Copia tu clave API


馃搫 Paso 3: Realiza consulta autenticada


import requests # Tu API Key Pro API_KEY = "TU_API_KEY" # URL de CoinCap Pro v3 url = f"https://rest.coincap.io/v3/assets/bitcoin?apiKey={API_KEY}" try: respuesta = requests.get(url) if respuesta.status_code == 200: datos = respuesta.json() # La estructura cambia en v3: datos dentro de "data" precio = float(datos['data']['priceUsd']) print(f"El precio actual de Bitcoin es: ${precio:.2f}") else: print("Error al obtener los datos de Bitcoin") print(f"C贸digo de estado: {respuesta.status_code}") print(f"Mensaje de error: {respuesta.text}") except Exception as e: print("❌ Error de conexi贸n:", e)

馃攣 Automatizar la consulta

Puedes ejecutar el script cada hora o guardar el valor en un .txt para seguimiento:

import time
while True: r = requests.get(url, headers=headers) if r.ok: precio = r.json()["data"]["priceUsd"] print(f"[Auto] BTC: ${float(precio):,.2f}") time.sleep(3600) # cada hora

✅ ¿Y si la API usa JWT?

  • Algunas APIs env铆an un token JWT al hacer POST con usuario/clave.

  • Lo guardas y lo reutilizas en headers como:
    "Authorization": "Bearer TOKEN_JWT"

馃攼 Recomendaci贸n: Usa variables de entorno o ficheros .env para guardar tus claves, no las pongas directo en el c贸digo.


馃 Aplicaciones reales

✔️ Dashboards de precios en tiempo real
✔️ Integraci贸n con bots (Telegram, Discord, etc.)
✔️ Automatizaci贸n de alertas econ贸micas
✔️ Automatizaci贸n de reportes o backups usando datos externos


馃搨 C贸digo completo en GitHub:
github.com/josecodetech

馃帴 Gu铆a paso a paso en YouTube:
[Tu canal aqu铆]