PyQuiz 33 – Slicing negativo en Python

El reto
texto = 'Python'
print(texto[-3:])¿Cuál es el resultado?
- a) 'hon'
- b) 'tho'
- c) 'Pyt'
Piensa tu respuesta antes de seguir leyendo…
Concepto: Slicing negativo
El slicing de strings permite extraer substrings usando la sintaxis texto[inicio:fin:paso]. Los índices negativos cuentan desde el final: -1 es el último carácter, -2 el penúltimo, y así sucesivamente.
Cuando usas texto[-3:], estás pidiendo desde el tercer carácter contando desde el final hasta el final del string (el : sin número de cierre significa «hasta el final»). Esta notación es muy útil para extraer sufijos o los últimos N caracteres sin necesidad de conocer la longitud total.
texto = 'Python'
# Índices positivos: P=0, y=1, t=2, h=3, o=4, n=5
# Índices negativos: P=-6, y=-5, t=-4, h=-3, o=-2, n=-1
print(texto[-1]) # 'n'
print(texto[-3:]) # 'hon' (desde posición -3 hasta el final)
print(texto[:-3]) # 'Pyt' (desde el inicio hasta posición -3, excluida)Paso a paso
texto = 'Python'— Se crea el string. Sus caracteres con índices negativos:P=-6, y=-5, t=-4, h=-3, o=-2, n=-1.texto[-3:]— El índice-3apunta a la letra'h'(tercer carácter desde el final). El:sin valor final significa «hasta el final del string».print(texto[-3:])— Se extraen los caracteres desde'h'hasta el final:'h','o','n'. Se imprime'hon'.
📥 Llévate el cheatsheet de Python (gratis)
PDF de 6 páginas con lo esencial: tipos, condicionales, bucles, estructuras de datos, funciones y los errores que más vas a cometer. Para tener al lado mientras programas.
Sin spam. Te apuntas a la lista, descargas el cheatsheet y recibes contenido de Python cada semana.
Solución
Respuesta correcta: A) 'hon'
texto[-3:] toma los últimos 3 caracteres: 'h', 'o', 'n' = 'hon'.
Sabías que…
El slicing negativo combinado con paso negativo permite invertir un string de forma muy pythónica:
texto = 'Python'
print(texto[::-1]) # 'nohtyP'
# Casos útiles con índices negativos:
extension = 'archivo.txt'
print(extension[-3:]) # 'txt' — obtener extensión
print(extension[-7:-4]) # 'arc' — substrings internas
# Comparar con len():
print(texto[len(texto)-3:]) # 'hon' — equivalente pero más verbosoPrueba tú mismo
Con el string 'Programación', ¿qué devuelve texto[-5:-2]? ¿Y texto[:-8]?
Más PyQuizzes en elpythonista.com/pyquizzes
Tutorial relacionado: Cadenas de caracteres en Python
¿Quieres aprender Python en orden, no a saltos?
Esto que has leído es solo una pieza. En El Pythonista lo verás todo encadenado: 11 módulos, 37+ horas de vídeo, 734 actividades y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.
37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía
