PyQuiz 33 - Slicing negativo en Python | Quiz interactivo

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

  1. texto = 'Python' — Se crea el string. Sus caracteres con índices negativos: P=-6, y=-5, t=-4, h=-3, o=-2, n=-1.
  2. texto[-3:] — El índice -3 apunta a la letra 'h' (tercer carácter desde el final). El : sin valor final significa «hasta el final del string».
  3. 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 verboso

Prueba 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.

Ver el curso completo →

37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía

Compartir