Aprende a trabajar con strings en Python con confianza: índices que empiezan en cero, longitud con la función global Len, acceso por posiciones negativas, el error off by one y la inmutabilidad respaldada por la función ID para observar la dirección de memoria. Practica en el intérprete y, ante dudas, desarrolla la habilidad de buscar respuestas en GitHub, StackOverflow y Google.
¿Qué son las strings en Python y por qué importan?
Las strings (cadenas) son secuencias de caracteres. A diferencia de los booleanos, enteros o floats, permiten acceder a cada carácter con un índice. También es posible conocer su longitud con la función global Len, una de las built in functions mencionadas. Además, las cadenas son inmutables: al “modificarlas”, se crea un nuevo objeto en memoria.
Ideas clave.
- Son secuencias de caracteres accesibles por índice.
- La longitud se obtiene con la función global Len.
- Son inmutables: cualquier cambio crea un nuevo objeto.
- Python reutiliza letras para optimizar memoria.
- Pueden ir desde Hello world hasta textos enormes, si hay memoria suficiente.
¿Dónde encontrar respuestas y practicar más?
- Usa el sistema de comentarios para dudas puntuales.
- Desarrolla la habilidad de buscar tus propias respuestas.
- Consulta GitHub, StackOverflow y Google.
- Practica en el intérprete con ejemplos breves.
¿Cómo funcionan los índices, la longitud y el error off by one?
En programación, se cuenta desde cero al acceder por índice. También puedes contar desde el final con índices negativos. Al medir longitud, se habla del número total de caracteres. Esta diferencia entre contar desde cero (índices) y “desde uno” (longitud) origina el error frecuente off by one.
Ejemplo con Country = "Colombia".
Country = "Colombia"
print(Country[0]) # C
print(Country[1]) # o
print(Country[-1]) # a
print(Country[-2]) # i
print(len(Country)) # 8
Puntos finos para evitar errores.
- Acceso por índice: empieza en cero.
- Índices negativos: -1 es el último carácter.
- Longitud: número total de caracteres.
- Error off by one: cuidar “límite superior” al usar índices.
¿Cómo indexar de atrás hacia adelante?
- Usa -1 para el último carácter.
- Usa -2 para el penúltimo, y así sucesivamente.
- Útil para leer sufijos o el final de una cadena.
¿Cómo medir la longitud con Len?
- Emplea la función global Len para conocer cuántos caracteres hay.
- En código de Python, usa len(cadena) para obtener el entero.
¿Por qué las strings son inmutables y cómo se ve en memoria?
Modificar una cadena crea un nuevo objeto en memoria. Puedes observarlo con la función ID, que muestra un número que representa la dirección de memoria. Python también reutiliza letras: dos variables con el mismo carácter pueden apuntar a la misma dirección. Además, una letra mayúscula y su versión minúscula son caracteres distintos y viven en direcciones distintas.
Comportamiento de memoria con caracteres.
Country = "Colombia"
letra = Country[1] # "o"
print(letra) # o
print(id(letra)) # dirección de memoria de "o"
other_var = "o"
print(id(other_var)) # misma dirección de memoria que "o"
print(id("i")) # dirección distinta
print(id("C")) # dirección para "C"
print(id("c")) # dirección distinta para "c"
Inmutabilidad al “modificar” una cadena.
country = "México"
print(id(country)) # dirección inicial
country = country + "s" # "Méxicos"
print(country) # Méxicos
print(id(country)) # dirección cambió: nuevo objeto
Claves para interiorizar la inmutabilidad.
- Cambiar una cadena genera un nuevo objeto.
- ID distinto implica objeto distinto en memoria.
- Python reutiliza letras para ahorrar memoria.
- Mayúsculas y minúsculas son caracteres diferentes.
¿Qué experimento hiciste con strings e índices? Comparte en los comentarios tus pruebas, dudas o hallazgos para apoyar a la comunidad.