0% encontró este documento útil (0 votos)
4 vistas5 páginas

Python Memory Cards

El documento proporciona una guía sobre funciones y métodos incorporados en Python, incluyendo ejemplos de uso para 'len()', 'range()', 'zip()', y otros. También se abordan conceptos de lógica, como operadores booleanos y comparación de valores, así como patrones de programación para manejar listas y datos. Se incluyen ejemplos prácticos y recomendaciones sobre el uso de estructuras de datos y pseudocódigo.

Cargado por

Camilo Roncancio
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas5 páginas

Python Memory Cards

El documento proporciona una guía sobre funciones y métodos incorporados en Python, incluyendo ejemplos de uso para 'len()', 'range()', 'zip()', y otros. También se abordan conceptos de lógica, como operadores booleanos y comparación de valores, así como patrones de programación para manejar listas y datos. Se incluyen ejemplos prácticos y recomendaciones sobre el uso de estructuras de datos y pseudocódigo.

Cargado por

Camilo Roncancio
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 PDF, TXT o lee en línea desde Scribd

len() BUILT-IN

DEFINICIÓN

Python Devuelve el número de elementos de una lista, string,


diccionario o cualquier secuencia.

Ref. ⚠ No usar en enteros: len(5) da TypeError.

EJEMPLO
Tarjetas de referencia rápida · Curso SoiTTech
carpetas = ["101", "205", "310"]
▸ · Ronqui ·
print(len(carpetas)) # → 3

Built-ins · Listas · Lógica · Patrones · Pseudocódigo

range() BUILT-IN enumerate() BUILT-IN

SINTAXIS DEFINICIÓN

range(fin) Agrega un índice automático a cada elemento al iterar.


range(inicio, fin) Devuelve tuplas (índice, valor).
range(inicio, fin, paso)
⚠ Devuelve tupla — debes desempacar: for i, val in
enumerate(...)
⚠ El fin NUNCA se incluye. range(1,23) → 1 al 22.

EJEMPLO
EJEMPLO
productos = ["Cemento", "Arena"]
for i in range(0, fecha_final - fecha_inicio):
for i, prod in enumerate(productos, start=1):
meta = meta_dia * (i + 1)
print(f"{i}. {prod}")

zip() BUILT-IN sum / max / min BUILT-IN

DEFINICIÓN DEFINICIÓN

Une dos o más listas elemento por elemento. Se sum() suma todos los elementos. max() devuelve el
detiene cuando la lista más corta termina. mayor. min() devuelve el menor.

⚠ Dos listas relacionadas → zip. Una sola lista → for


EJEMPLO
normal.
ventas = [320, 150, 480, 210]
EJEMPLO print(sum(ventas)) # 1160
print(max(ventas)) # 480
for vendedor, venta in zip(vendedores, ventas):
print(min(ventas)) # 150
estado = "✅" if venta >= meta else "❌"
prom = sum(ventas) / len(ventas) # 290.0
print(f"{vendedor} {estado}")
sort() vs sorted() BUILT-IN append / insert / extend LISTA

DIFERENCIA CLAVE AGREGAR ELEMENTOS

sort() modifica la lista original. sorted() devuelve una [Link](x) # al final


lista nueva sin tocar la original. [Link](i, x) # en posición i
[Link]([a,b]) # agrega varios
⚠ ¿Necesito conservar el orden original? → sorted(). Si no
→ sort()
⚠ append() es para listas. add() es para sets.

EJEMPLO
estados = ["pendiente"]
original = [3, 1, 4, 1, 5]
[Link]("aprobada")
nueva = sorted(original) # original intacta
# ["pendiente", "aprobada"]
[Link]() # original modificada

remove / pop / clear LISTA index / count / in LISTA

ELIMINAR ELEMENTOS BUSCAR ELEMENTOS

[Link](x) # 1ra ocurrencia [Link](x) # posición de x


[Link](i) # por índice → retorna [Link](x) # veces que aparece
[Link]() # último elemento x in lista # True/False
[Link]() # vacía la lista
EJEMPLO
⚠ remove() lanza error si el valor no existe.
estados = ["pend", "aprob", "pend"]
[Link]("pend") # → 2
[Link]("aprob") # → 1
"pend" in estados # → True

Slicing [ : ] LISTA List comprehension LISTA

SINTAXIS SINTAXIS

lista[inicio:fin] # fin no incluido [expr for var in iterable]


lista[inicio:fin:paso] [expr for var in iterable if cond]
lista[:3] # primeros 3
lista[2:] # desde índice 2 EJEMPLO
lista[-2:] # últimos 2
lista[::-1] # invertida # Aprobados de la lista
aprobados = [e for e in estados
⚠ [-2:] son los ÚLTIMOS 2, no desde la posición 2. if e == "aprobada"]

# Con zip y filtro


cumplen = [n for n, v in zip(nombres, valores)
if v >= meta]
set() LISTA → SET True / False LÓGICA

DEFINICIÓN VALORES QUE ACTÚAN COMO FALSE

Elimina duplicados de una lista. Los sets no garantizan 0, 0.0, "", [], {}, None # → False
orden y no permiten repetidos. 1, -1, "hola", [1,2] # → True
0 == False # → True ← sorpresa!
⚠ set() vacío: set() — no {}. Las llaves {} solas crean un
diccionario.
⚠ El if evalúa True/False. Todo en Python es truthy o falsy.

EJEMPLO

estados = ["pend","aprob","pend"]
sin_rep = set(estados)
# {'aprob', 'pend'}
s = set() # set vacío correcto
[Link]("nuevo")

and / or / not LÓGICA == vs is LÓGICA

REGLA RÁPIDA DIFERENCIA

and → exigente, una False tumba todo. or → generoso, == compara valores. is compara identidad en memoria.
una True activa todo. not → invierte. Usar is solo con None, True, False.

⚠ Nunca usar is para comparar strings o números.


True and False # → False
True or False # → True
not True # → False a = [1,2,3]; b = [1,2,3]
# Prioridad: not → and → or a == b # True (mismo valor)
True or False and False a is b # False (objetos distintos)
# = True or (False and False) = True x = None
x is None # ✅ forma correcta

Prioridad operadores LÓGICA Patrón: nombre por valor PATRÓN

DE MAYOR A MENOR PROBLEMA

1. () # paréntesis — siempre primero Tienes dos listas relacionadas. Necesitas el nombre del
2. ** # potencia mayor/menor valor.
3. *, /, //, % # multiplicación
4. +, - # suma SOLUCIÓN
5. ==,!=,>,< # comparación
pos = [Link](max(valores))
6. not # negación
nombre = nombres[pos]
7. and # y lógico
8. or # o lógico
# Ejemplo real:
ventas = [320, 150, 480, 210]
⚠ Cuando dudes — usa paréntesis. No cuestan nada.
vendedores = ["Ana","Luis","Marta","Jorge"]
pos = [Link](max(ventas))
mejor = vendedores[pos] # → "Marta"
Patrón: zip + filter PATRÓN Patrón: acumular en for PATRÓN

PROBLEMA PROBLEMA

Tienes dos listas paralelas y quieres filtrar una según Clasificar elementos de una lista en grupos según
condición de la otra. condición.

⚠ Inicializar las listas ANTES del for, no dentro.


SOLUCIÓN

[nombre for nombre, val in SOLUCIÓN


zip(nombres, valores) if val >= meta]
aprobadas = []
# Ejemplo: pendientes = []
cumplen = [n for n, v in for estado in estados:
zip(analistas, prod) if v >= meta] if estado == "aprobada":
no_cumplen = [n for n, v in [Link](estado)
zip(analistas, prod) if v < meta] else:
[Link](estado)

Patrón: enum + zip PATRÓN Patrón: ternario PATRÓN

PROBLEMA DEFINICIÓN

Necesitas índice + dos listas a la vez en un reporte Asigna uno de dos valores según condición en una sola
numerado. línea. Equivale a if/else en una línea.

⚠ Los paréntesis en (a, b) son obligatorios para


SINTAXIS + EJEMPLO
desempacar el zip.
valor = a if condicion else b
SOLUCIÓN
# En reporte:
for i, (nombre, val) in
estado = "✅ Cumplió" if v >= meta \
enumerate(zip(nombres, vals), start=1):
else "❌ No cumplió"
print(f"{i}. {nombre} — {val}")

# En comprehension:
# Con 3 listas:
["✅" if t <= 5 else "❌" for t in tiempos]
for i, (e, c, d) in enumerate(
zip(etapas, carpetas, dias), 1):

Patrón: reporte conteo PATRÓN Patrón: capacidad vs PATRÓN


PROBLEMA demanda
Necesitas estadísticas rápidas (totales, porcentajes) de PROBLEMA
una lista de estados. Comparar lo que el equipo puede producir contra lo que
se necesita. Identificar riesgos.
SOLUCIÓN

SOLUCIÓN
total = len(estados)
aprobadas = [Link]("aprobada") capacidad = [m*d for m, d in
pendientes = [Link]("pendiente") zip(metas_dia, dias)]
pct = aprobadas / total diferencia = [c-x for c, x in
print(f"Avance: {pct:.1%}") zip(capacidad, carpetas)]
en_riesgo = [e for e, d in
# Bandeja analista: zip(etapas, diferencia) if d < 0]
bandeja = ([Link]("asignada") # d < 0 → no alcanza la capacidad
+ [Link]("devuelta"))
Entrada→Proceso→Salida LÓGICA Pseudocódigo LÓGICA

ESQUEMA BASE DE TODO PROGRAMA VOCABULARIO ESENCIAL

# Antes de escribir código pregunta: RECIBIR / MOSTRAR / RETORNAR


ENTRADA → ¿qué datos recibo? SI / SINO SI / SINO
PROCESO → ¿qué hago con ellos? PARA cada X en Y:
SALIDA → ¿qué resultado entrego? MIENTRAS condición:
FUNCIÓN nombre(params):
TIPOS DE ENTRADA Y / O / NO → and / or / not
SALIR / CONTINUAR → break / continue
1. Hardcodeada (x = 5) · 2. Del usuario (input()) · 3.
Externa (Excel, BD) ⚠ Regla: si no puedes explicarlo en pseudocódigo, no lo
escribas en Python.

Descomposición LÓGICA f-strings formato STRING

REGLA DE UNA RESPONSABILIDAD ESPECIFICADORES DE FORMATO

Si describes un bloque y usas la palabra "y", necesitas f"{valor:,}" # miles: 5,015


partirlo en dos. f"{valor:.2f}" # decimales: 3.14
f"{valor:.1%}" # porcentaje: 37.5%
CHECKLIST ANTES DE CODIFICAR f"{valor:+}" # signo: +265 / -500
f"{texto:<{COL}}" # izquierda N chars
□ ¿Entiendo el problema en 1 frase?
f"{texto:>{COL}}" # derecha N chars
□ ¿Identifiqué E→P→S?
f"{texto:^{COL}}" # centrado
□ ¿Descompuse en partes pequeñas?
□ ¿Escribí pseudocódigo del difícil?
□ ¿Verifiqué con números reales?
□ ¿Pensé en qué puede salir mal?

[Link] LIBRERÍA

ESTRUCTURA BÁSICA

from [Link] import Table


from [Link] import Console
t = Table(title="Reporte")
t.add_column("Col", justify="center")
for fila in datos:
t.add_row(f"{fila}")
Console().print(t)

⚠ add_row() solo acepta strings — usar f-strings para


convertir.

También podría gustarte