Saltar al contenido principal
eLearner.app
Módulo 4 · Lección 2 de 414/36 en el curso~10 min
Lecciones del módulo (2/4)

Slicing e indexación

En Python, las cadenas son secuencias de caracteres: puedes acceder a caracteres individuales por índice y extraer subcadenas con la sintaxis de corte [start:stop:step] — exactamente como con las listas.

Índices positivos y negativos

Python
s = "Python"
#    0123456
#   -6-5-4-3-2-1
s[0]    # 'P'
s[5]    # 'n'
s[-1]   # 'n'   (ultimo)
s[-2]   # 'o'   (penultimo)

El acceso fuera de rango genera un IndexError.

Corte (Slicing) [start:stop:step]

Python
s = "Python"
s[0:3]    # 'Pyt'      indici 0,1,2 (stop ESCLUSO)
s[2:]     # 'thon'     dal 2 alla fine
s[:3]     # 'Pyt'      dall'inizio fino al 3 (escluso)
s[:]      # 'Python'   copia completa
s[-3:]    # 'hon'      ultimi 3
s[:-2]    # 'Pyth'     tutto tranne gli ultimi 2

A diferencia de la indexación, el corte NO genera errores si los índices están fuera de rango: extrae lo que puede.

El tercer argumento: step

Python
s = "Python"
s[::2]    # 'Pto'    salta uno sì uno no
s[1::2]   # 'yhn'    dispari
s[::-1]   # 'nohtyP' INVERSIONE (idiom famoso)

s[::-1] es la forma idiomática de invertir una cadena.

Longitud y contención

Python
len("Python")        # 6
"th" in "Python"     # True
"java" in "Python"   # False

Índices negativos y paso (step) en el corte

La sintaxis completa del corte es s[start:stop:step]. Si omites start y stop pero estableces un step negativo de -1 (s[::-1]), inviertes la cadena. El índice negativo -1 siempre representa el último carácter de la cadena, -2 es el penúltimo, etc.

Pruébalo tú

Ejercicio#python.m4.l2.e1
Intentos: 0Cargando...

Dada `word = 'PROGRAMMAZIONE'`, obtén su inversa en `reversed_word`. Evalúa `reversed_word`.

Cargando editor...
Mostrar pista

word[::-1]

Solución disponible después de 3 intentos

Ejercicio de repaso

Ejercicio#python.m4.l2.e2
Intentos: 0Cargando...

Dada `email = 'ada@example.com'`, extrae el dominio (todo lo después de '@') en `domain` usando el corte después de encontrar el índice con .find. Evalúa `domain`.

Cargando editor...
Mostrar pista

email[email.find('@') + 1:]

Solución disponible después de 3 intentos

Desafío adicional

Ejercicio#python.m4.l2.e3
Intentos: 0Cargando...

Dada la cadena `word = "pythonista"`, usa el corte para extraer los primeros 3 caracteres y los últimos 3 caracteres, y concaténalos en una nueva cadena `short_word`. Finalmente, evalúa `short_word` (debería resultar `'pytsta'`).

Cargando editor...
Mostrar pista

Los primeros 3 caracteres son word[:3], los últimos 3 son word[-3:]. Concatena ambos cortes.

Solución disponible después de 3 intentos