índice de cadena de Python

Al igual que las listas, las cadenas de Python están indexadas . Esto significa que cada valor en una cadena tiene su propio n√∫mero de ìndice que puede usar para acceder a ese valor. Si intenta acceder a un valor de ìndice que no existe en una cadena, encontrará un " TypeError: ìndice de cadena fuera de rango " error.

En esta guìa, discutimos qué significa este error y por qué se genera. Analizamos un ejemplo de este error en acciòn para ayudarlo a descubrir còmo resolverlo.

TypeError: ìndice de cadena fuera de rango

En Python, las cadenas se indexan a partir de 0 . Eche un vistazo a la cadena " Piña & rdquo ;:

P i n e a p p l e
1 2 3 4 5 6 7 8

" Pi√±a " contiene nueve letras. Debido a que las cadenas están indexadas desde 0, la √∫ltima letra de nuestra cadena tiene el n√∫mero de ìndice 8. La primera letra de nuestra cadena tiene el n√∫mero de ìndice 0.

Si intentamos acceder a un elemento en la posiciòn 9 en nuestra lista, encontraremos un error. Esto se debe a que no hay ninguna letra en la posiciòn del ìndice 9 para que Python la lea.

El " TypeError: ìndice de cadena fuera de rango " El error es com√∫n si olvidas tener en cuenta que las cadenas están indexadas desde 0. También es com√∫n en los bucles for que usan una declaraciòn range () .

Escenario de ejemplo: las cadenas se indexan desde 0

Observe un programa que imprime todas las letras de una cadena en una nueva lìnea:

81 El% de los participantes afirmò que se sentìa más seguro acerca de sus perspectivas laborales de tecnologìa después de asistir a un campamento de entrenamiento. Asòciese a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasò menos de seis meses en la transiciòn profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Nuestro còdigo usa un bucle while para recorrer cada letra de la variable " oraciòn & rdquo ;. Cada vez que se ejecuta un bucle, nuestra variable " count " aumenta en 1. Esto nos permite pasar a la siguiente letra cuando nuestro ciclo contin√∫a.

Llamemos a nuestra funciòn con una oraciòn de ejemplo:

Nuestro còdigo devuelve:

Nuestro còdigo imprime cada carácter en nuestra cadena. Después de que se imprimen todos los caracteres, se genera un error. Esto se debe a que nuestro bucle while contin√∫a hasta " count & rdquo ; ya no es menor o igual a la longitud de " frase & rdquo ;.

Para resolver este error, debemos asegurarnos de que nuestro bucle while solo se ejecute cuando " count " sea menor que el longitud de nuestra cadena. Esto se debe a que las cadenas se indexan desde 0 y el método len () devuelve la longitud completa de una cadena. Entonces, la longitud de " string " es 6. Sin embargo, no hay ning√∫n carácter en la posiciòn del ìndice 6 en nuestra cadena.

Revisemos nuestro ciclo while:

Este bucle solo se ejecutará mientras el valor de " count " es menor que la longitud de la "oraciòn".

Ejecute nuestro còdigo y vea qué sucede:

¬°Nuestro còdigo se ejecuta correctamente!

Escenario de ejemplo: Programa de distancia de Hamming

Aquì, escribimos un programa que calcula la distancia de Hamming entre dos secuencias. Esto nos dice cuántas diferencias hay entre dos cadenas.

Comience por definir una funciòn que calcule la distancia de Hamming:

Nuestra funciòn acepta dos argumentos: ay b. Estos argumentos contienen los valores de cadena que queremos comparar.

En nuestra funciòn, usamos un bucle for para revise cada posiciòn en nuestras cadenas para ver si los caracteres en esa posiciòn son los mismos. Si no son iguales, las " diferencias " el contador aumenta en uno.

Llame a nuestra funciòn y pruébela con dos cadenas:

Ejecuta nuestro còdigo y mira qué sucede:

Nuestro còdigo regresa un error. Esto se debe a que "a" y "b" no tienen la misma longitud. "a" tiene un carácter más que "b". Esto hace que nuestro bucle intente encontrar otro carácter en "b". que no existe incluso después de haber buscado a través de todos los caracteres acters en " b & rdquo ;.

Podemos resolver este error comprobando primero si nuestras cadenas son válidas:

Hemos utilizado un " if " declaraciòn para comprobar si nuestras cadenas tienen la misma longitud. Si es asì, nuestro programa se ejecutará. Si no es asì, nuestro programa imprimirá un mensaje en la consola y nuestra funciòn devolverá un valor nulo a nuestro programa principal. Ejecute nuestro còdigo nuevamente:

"Career Karma entrò en mi vida cuando más lo necesitaba y rápidamente me ayudò a combinar con un bootcamp. Dos meses después de graduarme, encontré el trabajo de mis sue√±os que se alineaba con mis valores ¬°y metas en la vida! "

Venus, ingeniero de software de Rockbot

Nuestro còdigo ya no devuelve un error. Pruebe nuestro algoritmo en cadenas que tengan la misma longitud:

Nuestro còdigo devuelve: 1. Nuestro còdigo ha calculado con éxito la Distancia de Hamming entre las cuerdas " Prueba " y " Tess & rdquo ;.

Conclusiòn

El " TypeError: ìndice de cadena fuera de rango " Se genera un error cuando intenta acceder a un elemento en una posiciòn de ìndice que no existe. Para solucionar este error, aseg√∫rese de que su còdigo trate las cadenas como si estuvieran indexadas desde la posiciòn 0.

Ahora está listo para resolver este error com√∫n de Python como un programador profesional !