Programación con Python: Cadenas, Listas y Fundamentos
Introducción
Python es un lenguaje de programación versátil, fácil de aprender y ampliamente
utilizado en diversas áreas como desarrollo web, análisis de datos, inteligencia
artificial, automatización y más. Su sintaxis sencilla y clara lo convierte en una opción
ideal para principiantes, permitiendo escribir código legible y estructurado sin una
curva de aprendizaje pronunciada.
A través de ejemplos prácticos, ejercicios interactivos y explicaciones detalladas,
exploraremos desde los conceptos básicos hasta técnicas más avanzadas que te
ayudarán a desarrollar habilidades esenciales en programación.
Aprenderás a trabajar con variables, estructuras de control, funciones, listas y
cadenas, comprendiendo no solo la teoría, sino también la aplicación práctica de cada
concepto. Además, abordaremos buenas prácticas y resolveremos errores comunes
para que puedas escribir código eficiente y libre de fallos.
Variables
Las variables almacenan valores que pueden cambiar durante la ejecución del
programa. Se pueden asignar diferentes tipos de datos, como números y texto.
Imagen 1: Variables
🔍 Explicación:
1. nombre = "Ana", Aquí asignamos el texto "Ana" a la variable nombre.
2. edad = 25, La variable edad almacena un número entero.
3. altura = 1.66, altura almacena un número con decimales.
4. print("Nombre:", nombre), print() permite imprimir texto y variables en
pantalla.
📌 Salida esperada en la terminal:
Imagen 2: Resultado
❌ Errores Comunes:
• No definir la variable antes de usarla.
Imagen 3: Error
• Asignar un tipo incorrecto sin conversión explícita.
Imagen 4: Error
✅ Solución
Imagen 5: Solución
Estructura de Control
Las estructuras condicionales en Python permiten ejecutar bloques de código
dependiendo de si una condición se cumple o no. Estas estructuras son
fundamentales para la toma de decisiones en un programa.
Condicionales (if, elif, else)
Imagen 6: IF, ELIF, ELSE
🔍 Explicación:
1. if edad >= 18: → Comprueba si edad es 18 o más. Si es verdadero, imprime
"Eres mayor de edad.".
2. else: → Si la condición es falsa, imprime "Eres menor de edad.".
❌ Errores Comunes:
1- No usar: al final de if y else.
Imagen 7: Errores Comunes
Bucles (for, while)
Un bucle es una estructura de control que ejecuta un bloque de código mientras se cumpla una
condición. Existen dos tipos principales de bucles en Python:
• for → Se usa cuando sabemos cuántas veces queremos repetir la acción.
• while → Se usa cuando no sabemos cuántas veces se repetirá la acción y
queremos que siga ejecutándose mientras se cumpla una condición.
Bucle for en Python: Se usa cuando queremos repetir un bloque de código un número
determinado de veces.
Imagen 8: for
🔍 Explicación paso a paso:
1. range(5) genera los números 0, 1, 2, 3, 4.
2. for i in range(5): → Recorre cada número, asignándolo a i en cada iteración.
3. print("Iteración número", i) → Muestra el número de la iteración en pantalla.
📌 Salida esperada en la terminal:
Imagen 9: terminal
📌 Nota: Python empieza a contar desde 0, por eso range(5) genera valores hasta
4.
Utilizamos for para recorrer listas: El bucle for también se usa para recorrer listas
y acceder a cada elemento.
📌 Ejemplo con listas
Imagen 10: recorrerlistas
🔍 Explicación:
• frutas = ["manzana", "banana", "cereza"] → Creamos una lista de frutas.
• for fruta in frutas: → Cada vez que se ejecuta el bucle, fruta toma el valor
de un elemento de la lista.
• print("Me gusta", fruta) → Imprime "Me gusta" seguido del nombre de la
fruta.
📌 Salida esperada en la terminal:
Imagen 11: terminal-for
Bucle while en Python: Se ejecuta mientras una condición sea verdadera.
📌 Ejemplo de while
Imagen 12: while
🔍 Explicación paso a paso:
• contador = 0 → Se define una variable para contar las repeticiones.
• while contador < 3: → Mientras contador sea menor que 3, el bucle sigue
ejecutándose.
• print("Número:", contador) → Muestra el valor del contador en la terminal.
• contador += 1 → Se incrementa el valor de contador en 1 en cada repetición.
•
📌 Salida esperada en la terminal:
Imagen 13: terminal while
📌 Nota: Cuando contador llega a 3, la condición contadora < 3 se vuelve False y el
bucle termina.
📌 ¿Cuándo usar for y cuándo usar while?
Los bucles for se utilizan cuando sabemos de antemano cuántas veces queremos
que se repita la ejecución. Se usa normalmente con rangos de números (range())
o para recorrer estructuras de datos como listas y cadenas.
Por otro lado, los bucles while se utilizan cuando no sabemos cuántas veces se
ejecutará el código, ya que dependen de una condición que puede cambiar en tiempo
de ejecución.
Comparación entre for y while
Característica For While
Uso Principal Cuando sabemos cuántas Cuando no sabemos
veces iterar. cuántas veces iterar.
Condición de Se ejecuta un número fijo Se ejecuta hasta que una
finalización de veces. condición sea falsa.
Ejemplo típico Recorrer una lista o Esperar hasta que una
rango. condición cambie.
📌 Diferencias clave con ejemplos
• for es útil cuando hay un número de repeticiones fijo.
Ejemplo: Imprimir números del 1 al 10.
Imagen 14: for-ejemplo
• while se usa cuando la cantidad de repeticiones depende de una condición.
• Ejemplo: Esperar a que el usuario ingrese una contraseña correcta.
Imagen 15: while-ejemplo
Manipulación de Cadenas en Python (String)
Las cadenas de texto en Python (strings) son secuencias de caracteres
almacenadas en variables y se pueden definir usando comillas simples (' ') o
dobles (" "). Se utilizan para representar palabras, frases, nombres, y cualquier
otro texto dentro de un programa.
🔹 Cómo Definir y Mostrar una Cadena
Imagen 16: cadena
📌 Salida esperada en la terminal:
Imagen 17: Terminal-cadena
🔍 Explicación Paso a Paso:
1. Se definen dos cadenas cadena1 y cadena2 con diferentes comillas (" " y ' ').
2. print(cadena1) y print(cadena2) imprimen las cadenas en pantalla.
💡 Consejo: Puedes usar comillas simples ' ' o dobles " ", pero si dentro de la cadena
hay apóstrofes, es mejor usar comillas dobles:
Imagen 18: consejo
Concatenación de Cadenas
Concatenar significa unir varias cadenas en una sola. Python permite hacer esto de
distintas maneras.
✅ Método 1: Usar + (Concatenación con +)
Imagen 19: Método 1
📌 Salida esperada terminal:
Imagen 19: terminal-cadenas
⚠️ Error Común: Falta de Espacios en la Concatenación
❌ Código Incorrecto:
Imagen 20: incorrecto
✅ Solución: Agregar espacios dentro de las cadenas.
Alternativa: Usar print() con Comas
Si usamos print() con comas, Python agrega automáticamente un espacio entre
los elementos.
Imagen 22: Print
📌 Salida esperada terminal:
Imagen 23: salida-terminal
💡 Ventaja: No hay riesgo de olvidar los espacios entre palabras.
Conversión de Tipos (str()) en Concatenación
Python no permite combinar números y texto directamente, lo que puede generar
errores.
❌ Ejemplo Incorrecto:
Imagen 24: ejemplo-incorrecto
📌 Error generado: El error TypeError: can only concatenate str (not "int") to
str ocurre en Python cuando intentas unir (concatenar) una cadena de texto (str)
con un número entero (int) usando el operador +.
Imagen 25: TypyError
✅ Solución: Convertir el número a cadena usando str()
Imagen 26: solución
Acceso a Caracteres en una Cadena (Indexación)
Las cadenas en Python se comportan como listas de caracteres, donde cada letra
tiene un índice numérico.
Carácter P y t h o n
Índice 0 1 2 3 4 5
Ejemplo: Acceder a Letras de una Cadena
Imagen 27: Ejemplo
📌 ¿Por qué Python usa índices desde 0?
En muchos lenguajes de programación, incluyendo Python, la numeración comienza
en 0 porque facilita el cálculo de posiciones en memoria y mejora la eficiencia.
Extraer Partes de una Cadena (Slicing)
Podemos obtener partes específicas de una cadena usando [:].
Imagen 28: Slicing
📌 Salida esperada terminal:
Imagen 29: salida
Explicación: La imagen muestra un fragmento de código en Python que utiliza la
técnica de slicing para extraer partes específicas de una cadena de texto. El código
define una variable llamada texto con el valor "Bienvenidos a Python" y utiliza la
notación [inicio:fin] para seleccionar porciones de la cadena.
• texto[0:10] → Extrae los primeros 10 caracteres de la cadena, comenzando
desde el índice 0 hasta el 9 (Python no incluye el último índice en el rango).
El resultado esperado sería "Bienvenid", pero en la salida esperada de la
imagen aparece incorrectamente como "Bienvenid".
• texto[:5] → Extrae los caracteres desde el inicio hasta el índice 4. En Python,
cuando el primer valor está vacío, se asume que es 0, por lo que equivale a
texto[0:5]. El resultado correcto sería "Bienv".
• texto[5:] → Extrae los caracteres desde el índice 5 hasta el final de la cadena.
Cuando el segundo valor está vacío, Python asume que debe continuar hasta
el último carácter. En este caso, extrae "nidos a Python".
• Sin embargo, la salida esperada mostrada en la imagen tiene un error, ya que
texto[0:10] debería devolver "Bienvenidos" en lugar de "Bienvenid".
Error Común: Índice Fuera de Rango (IndexError)
En Python, cuando intentamos acceder a un índice que está fuera del rango de una
cadena de texto, se genera un error del tipo IndexError. Este error ocurre porque
estamos tratando de acceder a una posición que no existe en la cadena.
❌ Código Incorrecto:
Imagen 30: IndexError
📌 Error generado:
En Python, el error IndexError: string index out of range significa que intentamos
acceder a una posición de una cadena de texto que no existe. Esto ocurre cuando el
índice utilizado está fuera del rango válido de la cadena.
Imagen 31: IndexError
✅ Solución: Antes de acceder a un índice, verificar la longitud de la cadena con
len()
Imagen 32: Solución
📌 Salida esperada terminal:
Imagen 33: salida
Pruebas y Depuración: Evitando Errores con String
En la programación, especialmente al trabajar con cadenas de texto (strings), es
común cometer errores como intentar concatenar diferentes tipos de datos o acceder
a índices inexistentes. Para evitar estos problemas y hacer que nuestro código sea
más robusto, podemos aplicar algunas técnicas de pruebas y depuración.
Usar print() para verificar valores antes de concatenar: Antes de concatenar
cadenas con otros valores, es recomendable imprimir las variables para asegurarnos
de que contienen el tipo de dato correcto.
🔍 Ejemplo de error sin verificación previa:
Imagen 32: Error sin verificación
💥 Error:
Imagen 33: Error
📌 ¿Por qué sucede?
Python no permite concatenar cadenas (str) con números (int).
✅ Solución: Verificar el tipo de dato con print() antes de concatenar.
Imagen 34: solución
🔎 Preguntas para Reflexionar
• ¿Qué pasará si intentamos acceder a palabra[-1] en "Python"?
• ¿Cuál es la diferencia entre print("Hola" + "Mundo") y print("Hola", "Mundo")?
Trabajando con Listas en Python
Las listas en Python son estructuras de datos que permiten almacenar múltiples
valores en una sola variable. Son ordenadas (tienen un índice), mutables (pueden
modificarse) y se pueden usar para almacenar números, cadenas, e incluso otras
listas.
Las listas son una de las estructuras más utilizadas en Python porque permiten
organizar datos de forma sencilla y eficiente.
🔍 Ejemplo de Lista de Números y Cadenas
Imagen 35:Lista
📌 Salida esperada:
Imagen 36: Terminal
🔍 Explicación:
1. numeros almacena una lista de valores numéricos.
2. frutas almacena una lista de cadenas de texto.
3. print(numeros) y print(frutas) imprimen las listas en la terminal.
💡 Dato Importante: Las listas pueden contener diferentes tipos de datos mezclados:
Imagen 37: Datos
Acceder a Elementos de una Lista (Indexación)
Cada elemento de una lista tiene un índice numérico que indica su posición.
En Python, los índices comienzan desde 0.
Elem 1 2 3 4 5
ento
Índic 0 1 2 3 4
e
Ejemplo: Acceder a Elementos por Índice
Imagen 38: elementos- índice
📌 Salida esperada:
Imagen 39: Salida Esperada
💡 Nota:
• numeros[0] devuelve el primer elemento.
• numeros[-1] devuelve el último elemento sin importar el tamaño de la lista.
Modificar Elementos en una Lista
En Python, las listas son mutables, lo que significa que podemos modificar sus elementos sin
necesidad de crear una nueva lista. Esto nos permite actualizar, reemplazar o cambiar cualquier
valor dentro de la lista utilizando su índice.
Por ejemplo, si tenemos una lista de frutas y queremos cambiar un elemento específico, podemos
hacerlo de la siguiente manera:
Imagen 40: modificar
📌 Salida esperada:
Imagen 41: salida
Agregar y Eliminar Elementos en una Lista
Podemos agregar nuevos elementos de dos formas principales:
• append() → Agrega un elemento al final de la lista.
• insert() → Agrega un elemento en una posición específica de la lista.
A continuación, un ejemplo práctico de cómo usarlos:
Imagen 42: Agregar y eliminar
✅ Salida esperada:
Imagen 43: Salida
🔍 Explicación del Código
En este ejemplo, comenzamos creando una lista llamada frutas con dos elementos
iniciales: "manzana" y "banana". Luego, utilizamos el método
append("naranja") para agregar "naranja" al final de la lista. Posteriormente,
aplicamos insert(1, "pera"), lo que permite insertar "pera" en la posición 1,
desplazando los elementos siguientes hacia la derecha sin reemplazarlos. Finalmente,
imprimimos la lista para visualizar los cambios realizados y confirmar que los
elementos se han agregado correctamente en las posiciones esperadas.
Eliminar Elementos (remove() y pop())
En Python, podemos eliminar elementos de una lista utilizando métodos específicos
como remove() y pop(). Cada uno tiene un propósito distinto:
• remove(valor) → Busca y elimina la primera ocurrencia de un valor
específico en la lista.
• pop(índice) → Elimina el elemento ubicado en la posición indicada por el
índice y lo devuelve. Si no se proporciona un índice, elimina el último elemento
de la lista.
Imagen 45: Remover-pop
📌 Salida esperada:
Imagen 46: terminal
Slicing: Extraer Partes de una Lista
En Python, podemos extraer partes específicas de una lista utilizando la técnica de
slicing, que nos permite obtener sublistas sin modificar la lista original. Para esto,
usamos la sintaxis [inicio:fin], donde:
• inicio es el índice desde donde comienza la sublista.
• fin es el índice donde termina la sublista (sin incluirlo).
🔹 Ejemplo práctico:
Imagen 47: Ejemplo
📌 Explicación:
• frutas[1:3] extrae los elementos desde el índice 1 hasta el 3, pero sin incluir
el elemento en la posición 3.
• La lista original permanece intacta, ya que slicing crea una nueva sublista.
Omisión de valores:
Si omitimos el inicio, Python asumirá que es 0, y si omitimos el fin, tomará hasta el
final de la lista:
Imagen 48: Omisión
Error Común: Índice Fuera de Rango (IndexError)
Si intentamos acceder a un índice que no existe, obtenemos un error.
❌ Código Incorrecto:
Imagen 49: Incorrecto
El error IndexError: list index out of range en Python ocurre cuando intentamos
acceder a un índice que no existe dentro de una lista. Esto significa que el índice
solicitado es mayor o menor que los límites de la lista.
✅ Solución: Antes de acceder a un índice, usar len() para verificar su tamaño.
Imagen 50: Solución
📌 Salida esperada:
Imagen 51: Salida
Recorrer una Lista con Bucle
En Python, los bucles for nos permiten recorrer y procesar todos los elementos de
una lista de manera sencilla. En el ejemplo mostrado, se define una lista llamada
frutas que contiene tres elementos: "manzana", "banana" y "cereza". Luego,
mediante un bucle for, se recorre cada elemento de la lista, asignándolo a la variable
fruta en cada iteración. Dentro del bucle, se utiliza print("Me gusta", fruta), lo que
genera una salida en la que cada nombre de fruta se imprime precedido por la frase
"Me gusta". Este método es útil para trabajar con listas sin necesidad de acceder
manualmente a los índices, haciendo el código más limpio y fácil de leer.
Usando for
Imagen 52: Usando For
Reflexión
Python es un lenguaje de programación versátil y poderoso que permite a los
programadores resolver problemas de manera eficiente. A lo largo de tu aprendizaje,
has explorado dos estructuras de datos fundamentales: las listas y las cadenas
(strings). Ambos conceptos son esenciales para manipular y organizar datos de
manera efectiva.
📌 Cadenas: Más que Solo Texto
Las cadenas de texto son la base de muchas aplicaciones en Python. Aprendiste
que pueden manipularse mediante concatenación, slicing, indexación y que
tienen métodos útiles como .upper(), .replace(), y .split(). Pero más allá de la
teoría, reflexiona:
🔹 ¿Cómo podrías aplicar la manipulación de cadenas en un proyecto real, como el
procesamiento de datos o la creación de un chatbot?
🔹 ¿Qué ventajas encuentras en el uso de comillas simples y dobles en Python?
🔹 Ahora que comprendes la importancia de la indexación desde 0, ¿cómo usarías
este conocimiento en estructuras más complejas como matrices o bases de datos?
📌 Listas: Organización y Flexibilidad
Las listas te permiten almacenar y gestionar múltiples elementos en una sola
variable. Son ordenadas, mutables, y pueden contener cualquier tipo de datos.
Aprendiste sobre indexación, slicing, modificación de valores, y métodos
como append(), remove(), y pop().
Pero más allá de los métodos, reflexiona:
🔹 ¿Cómo podrías usar listas para manejar datos en aplicaciones reales, como listas
de tareas, inventarios o bases de datos?
🔹 ¿Por qué crees que Python permite listas con diferentes tipos de datos? ¿Cómo
puedes aprovechar esta característica en la resolución de problemas?
🔹 ¿Cómo podrías evitar errores comunes, como el IndexError, en programas más
grandes?
📌 Pensamiento Lógico y Resolución de Problemas
Programar en Python no se trata solo de aprender sintaxis, sino de desarrollar
una mentalidad lógica. Cada error que encuentres es una oportunidad de
aprendizaje. La depuración y la prueba de código son herramientas
esenciales para escribir programas sólidos y confiables.
💡 Desafío Final: Piensa en una pequeña aplicación donde puedas combinar cadenas
y listas. Podría ser un sistema de gestión de nombres de estudiantes, un programa
de lista de compras, o incluso un generador de contraseñas aleatorias.
Referencias
DigitalOcean. (s.f.). Cómo indexar y segmentar cadenas en Python 3. Recuperado de
[Link]
in-python-3-es
DataCamp. (s.f.). Tutorial de cadenas en Python. Recuperado de
[Link]
DataCamp. (s.f.). Tutorial de list index() de Python. Recuperado de
[Link]
El Libro de Python. (s.f.). Cadenas en Python. Recuperado de
[Link]
Programa en Python. (s.f.). Strings en Python. Recuperado de
[Link]
ventajas y desventajas.10