Breve introducción a
Python
Aprender a programar
con ChatGPT
Tenemos que aprender
a usar Python
¿Por qué Python?
● Sintaxis clara y legible: te va a ser fácil aprender python porque es super
fácil de leer. En muchas cosas es similar a hablar indio, como SQL.
● De las mayores comunidades y soporte: Encontrar soluciones es fácil y
mejora muchísimo. Documentación, foros, recursos…
● Montonazo de frameworks y librerías: Para casi cualquier necesidad.
Muy bien mantenidas, intuitivas y funcionales.
● Extremadamente versátil: scripting y automatizaciones, pero también
desarrollo web, análisis de datos, IA, desarrollo de software…
Pero el mayor motivo…
Es que ChatGPT funciona con Python
- Code Interpreter (ADA)
- ChatGPT entrenado con datos de Internet
- Sintaxis clara y legible
- Documentación, recursos, ejemplos, etc. abundante
Oh vaya, casi parece que es perfecto para entrenar un modelo
LLM para que aprenda Python, ¿no?
Instalar Python en Mac
Con Instalador: [Link]/downloads. Descarga y abre el archivo .pkg
descargado. Sigue las instrucciones del instalador.
Por terminal (con brew): $ brew install python
Verificar la Instalación:
● Abre la Terminal.
● Escribe $ python3 --version y presiona Enter.
● Deberías ver la versión de Python que acabas de instalar.
- En mac, viene por defecto python2.7 (deprecated) y se usa python2 y pip3
- Mejor instalar con brew para que configure todo bien (como el PATH)
Instalar python en Windows
Con Instalador: [Link]/downloads. Descarga y abre el
archivo .exe descargado. Sigue las instrucciones del instalador.
MARCA LA CASILLA “Add to PATH”. Si no tendréis que añadirlo
luego.
Verificar la Instalación:
● Abre la Terminal Command Prompt (CMD).
● Escribe $ python3 --version y presiona Enter.
● Deberías ver la versión de Python que acabas de instalar.
Instalar python en Ubuntu/Debian
Normalmente viene instalado, pero por si acaso.
$ sudo apt update
$ sudo apt install python3
$ python3 --version
Verificar la Instalación:
● Abre la Terminal.
● Escribe $ python3 --version y presiona Enter.
● Deberías ver la versión de Python que acabas de instalar.
Entornos de desarrollo a utilizar
- Lo mejor es utilizar Visual Studio Code o un fork (derivado)
de este:
- VSCodium, Gitpod, Coder, Eclipse Theia…. Codeium
- Yo voy a utilizar Cursor, por propuesta de Jaime
- Por si acaso, os recomiendo usar una herramienta de
contenedores y máquinas virtuales -> Docker Desktop. Pero
para enseñaros lo de hoy lo podemos hacer con el pc.
Python basics
TIPOS DE VARIABLES OPERACIONES
a = 10
booleano = True b=3
string = "Juan"
entero = 10 suma = a + b
flotante = 3.14159 resta = a - b
cadena1 = "Hola" multiplicacion = a * b
cadena2 = ‘Mundo’ division = a / b
modulo = a % b
print("Hello, World!") exponente = a ** b
print(cadena1, cadena2) concat = cadena1 + " " + cadena2
repeticion = cadena1 * 3
longitud = len(cadena1)
Multielementos en python
● Listas (list): numeros = [1, 2, 3, 4, 5]
● Tuplas (tuple): coordenadas = (10, 20)
● Dicc. (dict): persona = {"nombre": "Ana", "edad": 30}
● Conjuntos (Set): letras = {'a', 'b', 'c'} #desordenadas, elem. únicos
Tipos multielementos
Tipo Características Casos de Uso Métodos Aplicables
- Almacenar una
append(), extend(), insert(),
secuencia ordenada de
Ordenadas, mutables, remove(), pop(), clear(),
Listas elementos.
permiten duplicados index(), count(), sort(),
- Cuando necesitas
reverse(), copy()
modificar los elementos.
Desordenados (a partir - Almacenar datos keys(), values(), items(),
de Python 3.7 se asociados con claves. get(), update(), pop(),
Diccionarios mantienen ordenados), - Acceso rápido a los popitem(), clear(),
mutables, pares datos a través de setdefault(), copy(),
clave-valor únicos claves. fromkeys()
Operaciones con listas y diccionarios
diccionario =
lista = [1, 2, 3, 4, 5]
{"nombre": "Ana", "edad": 30}
[Link](6)
nombre = diccionario["nombre"]
elemento = lista[2]
diccionario["edad"] = 31
sublista = lista[1:4]
diccionario["ciudad"] = "Madrid"
longitud = len(lista)
keys = [Link]()
values = [Link]()
Leer y escribir en archivos
with open("[Link]", "r") as file:
contenido = fi[Link]()
print(contenido)
with open("[Link]", "w") as file:
fi[Link]("Hola, Mundo")
Operadores lógicos y de comparación
a=5
b = 10 x = True
y = False
print(a == b) # False print(x and y) # False
print(a != b) # True print(x or y) # True
print(a > b) # False print(not x) # False
print(a < b) # True
print(a >= b) # False ((a > b) and (c != d)) or (e ==f)
print(a <= b) # True
Condicionales en python
edad = 17 edad = 20
vip = False
if edad > 18: ban = False
print("Eres mayor de edad")
elif edad == 18: if (edad >= 18 and not ban) or vip:
print("Acabas de cumplir 18") print("Puede entrar al club.")
else: else:
print("Eres menor de edad") print("No puede entrar al club.")
Bucles en python: bucle for
print(0)
print(1)
print(2) for numero in range(1, 11):
print(3)
print(4) if numero % 2 == 0:
print(f"{numero} es par.")
else:
for i in range(5): print(f"{numero} es impar.")
print(i)
Bucles en python: bucle while
print(0)
print(1)
print(2) contador = 10
print(3)
print(4) while contador >= 0:
print(f"Contador: {contador}")
numero = 0 contador -= 1
while numero < 5: print("¡Cuenta atrás finalizada!")
print(numero)
numero += 1
Bucles en python: recorrer listas
nombres = ["Ana", "Luis", "Marta", "Carlos", "Elena"]
for nombre in nombres:
print(f"Hola, {nombre}!")
tareas = ["Lavar platos", "Hacer compra", "Estudiar Python",]
while tareas:
tarea_actual = [Link](0)
print("¡Todas las tareas han sido completadas!")
Funciones y retornos
def saludar(nombre): def sumar(a, b):
print(f"Hola, {nombre}") return a + b
saludar("Juan") resultado = sumar(5, 3)
print(resultado)
Funciones y retornos
numeros = [10, 20, 30, 40, 50]
media = calcular_media(numeros)
def media(lista): des_est = desviacion_estandar(numeros)
return sum(lista) / len(lista) print(f"Media: {media}")
print(f"Desviación estándar: {des_est}")
def desviacion_estandar(lista):
media = calcular_media(lista)
varianza = sum((x - media) ** 2 for x in lista) / len(lista)
desviacion = varianza ** 0.5
return desviacion
Módulos, librerías e imports
import math import numpy as np
from math import sqrt, pi
array = [Link]([1, 2, 3, 4])
print([Link](16)) # 4.0 print(array)
print([Link]) # 3.14159
Módulos y librerías más usadas
NO NATIVOS
NATIVOS
import numpy as np
import random #aleatoriedad import pandas as pd
import os #sistema operativo import requests
import sys #intérprete import [Link] as plt
import datetime #fechas import [Link] as px
import time #cosas de tiempo from PyPDF2 import PdfReader
import json #manejo y parseo from bs4 import BeautifulSoup
import re #expresiones regulares import tensorflow as tf
import keras
from PIL import Image
Corregir al Code Interpreter de ChatGPT
● 1. Contexto Claro: Proporciona un contexto claro y detallado
sobre el problema que deseas resolver.
“Necesito un script en Python para leer un archivo CSV, procesar los
datos para eliminar duplicados y calcular la media de la columna
[C].”
Corregir al Code Interpreter de ChatGPT
● 2. Requerimientos Específicos: Indica claramente los requisitos
específicos del código.
“El script debe usar pandas y debe manejar errores si el archivo CSV
no existe o la columna especificada no está presente.”
Corregir al Code Interpreter de ChatGPT
● 3. Pídele que gestione errores: además de que vaya paso a
paso, que testee y debuguee lo que está haciendo. Añadir
sentencias debug hará que se autocorrija más fácilmente.
“El script debe usar pandas y debe manejar errores si el archivo CSV
no existe o la columna especificada no está presente.”
Corregir al Code Interpreter de ChatGPT
● 4. Ayúdale a encontrar el error: Plantea preguntas específicas
sobre esos problemas, dale información extra.
El script está arrojando un error de KeyError. ¿Puedes ayudarme a
solucionarlo?
Me está dando este error. Creo que es porque en la línea [X] la
función [Y] no coge bien el formato del parámetro [Z]
Corregir al Code Interpreter de ChatGPT
● 5. Descomponer el Problema: Divide el problema en partes más
pequeñas y solicita ayuda en cada parte.
“Tengo esta función (no este script) que hace [...]. Pero [pistas sobre
el problema]. ¿Qué crees que puede estar mal / ocurriendo?”
“Primero, necesito ayuda para cargar el archivo CSV y verificar su
existencia.”
“Ahora que hemos cargado el CSV, ¿puedes ayudarme a eliminar los
duplicados?”
Corregir al Code Interpreter de ChatGPT
● 6. Pídele que ponga comentarios y docu explicando lo que hace:
Al pedir que comente cada sección con el funcionamiento, fuerzas a
autocorregirse prestando atención a lo que hace el código.
“Tengo este script [script]. Que lo que quiero que haga es [...]. Pero no
funciona. Por favor, revísalo paso a paso, ponme comentarios de qué
hace cada parte, debuguea errores e intenta solucionarlo.
Corregir al Code Interpreter de ChatGPT
● 7. Pídele ejemplos y códigos de prueba: Ayudarán a ChatGPT
también a autocorregirse.
“¿Puedes agregar algunos casos de prueba para verificar que el script
funcione correctamente con diferentes archivos CSV?”
Corregir al Code Interpreter de ChatGPT
● 8. Solicitar revisión y mejora: ChatGPT hará como una segunda
opinión del código. Lo ve desde otra perspectiva.
“Este es el código que tengo hasta ahora. ¿Cómo podría mejorarlo
para que sea más eficiente?” Revísamelo
Corregir al Code Interpreter de ChatGPT
● 9. Pedirle optimizaciones específicas: Pide optimizaciones
específicas como estructurar el código, organizarlo en clases y
funciones, manejo de excepciones, eficiencia en el uso de
memoria, etc.
“¿Cómo puedo mejorar el [característica] de este código?”
“Tengo este código en pseudo borrador. Organízalo de forma
profesional en clases modulables y con sentido lógico.”
Corregir al Code Interpreter de ChatGPT
● 10. Pásale la documentación del lenguaje / librería, etc.
“Aquí está la documentación de pandas:
[Link]
“Esta es la documentación de PyPDF2:
[Link]