El objeto python int no es subscriptable

Funciones y métodos de Python

Algunos objetos en Python son subscriptables. Esto significa que contienen, o pueden contener, otros objetos. Los enteros no son un objeto con subíndice. Se utilizan para almacenar números enteros. Si trata un número entero como un objeto con subíndice, se generará un error.

En esta guía, vamos a hablar sobre el & ldquo; typeerror: & lsquo; int & rsquo; el objeto no se puede suscribir & rdquo; error y por qué se plantea. Revisaremos un fragmento de código con este problema para mostrar cómo puede resolverlo en su código. ¡Empecemos!




El problema: typeerror: & lsquo; int & rsquo; el objeto no es subcriptable

Comenzaremos echando un vistazo a nuestro mensaje de error:

 typeerror: el objeto 'int' no es subscriptable 

La primera parte de nuestro mensaje de error, TypeError, indica el tipo de nuestro error. Un TypeError es un error que se genera cuando intenta realizar una operación en un valor que no admite esa operación. Concatenar una cadena y un entero, por ejemplo, genera un TypeError.

La segunda parte de nuestro mensaje nos informa de la causa.

Este mensaje es revelador. nosotros que estamos tratando un entero , que es un número entero, como un objeto subcriptable. Los enteros no son objetos con subíndice. Solo los objetos que contienen otros objetos, como cadenas , listas , tuplas y diccionarios se pueden suscribir.

Vamos a & rsquo; s dicen que intenta usar la indexación para acceder a un elemento de una lista:

 email_providers = ["Gmail", "Outlook", "ProtonMail"] imprimir (proveedores de correo electrónico [2]) 

Este código devuelve: ProtonMail. Las listas son subscriptables, lo que significa que puede usar la indexación para recuperar un valor de una lista.

El 81% de los participantes afirmaron que se sentían más seguros acerca de sus perspectivas laborales de tecnología después de asistir a un campamento de entrenamiento. Asóciese a un bootcamp hoy.

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.

No puede usar esta misma sintaxis en un valor no suscriptable, como un flotante o un entero.




Un escenario de ejemplo

Vamos a escribir un programa que le pregunte a un usuario la fecha en la que su próximo vacaciones comienza e imprime cada valor en una línea separada. Este programa tendrá un error que podemos resolver.


Comencemos escribiendo nuestro programa principal:

 feriado = int (input ("¿Cuándo comienzan sus vacaciones? (mmddyyyy)")) mes = feriado [0: 2] día = feriado [2: 4] año = feriado [4: 8] print ("Mes:" , mes) imprimir ("Día:", día) imprimir ("Año:", año) 

Este programa le pide al usuario que inserte el día en el que comienza su día festivo usando un declaración input () . Luego, usamos la división para recuperar los valores del mes, día y año que el usuario ha especificado. Estos valores se almacenan en variables. < br>

A continuación, imprimimos los valores de estas variables en la consola. A cada valor se le asigna una etiqueta que indica la parte de la fecha a la que corresponde el valor.

Ejecutemos nuestro código:

 Traceback (última llamada más reciente): Archivo" main.py ", línea 3, en & lt; módulo & gt; month = holiday [0: 1] TypeError: el objeto 'int' no es subscriptable 

Corregamos este error.

Hemos convertido el valor de & ldquo; vacaciones & rdquo; en un número entero. Esto significa que no podemos acceder a él mediante segmentación o indexación. Los enteros no están indexados como cadenas.

Para resolver este problema, podemos eliminar la instrucción int () de nuestro código. La instrucción input () devuelve un valor de cadena. Podemos dividir este valor de cadena usando nuestro código.

Revisemos nuestra declaración input () :

 holiday = input (" ¿Cuándo comienzan tus vacaciones? (mmddyyyy) ") 

Ahora, intentemos ejecute nuestro código:

 ¿Cuándo comienzan sus vacaciones? (mmddyyyy) 02042021 Mes: 02 Día: 04 Año: 2021 

¡Nuestro código se ejecuta correctamente! Ya no intentamos dividir un número entero porque nuestro código no contiene una declaración int () . En cambio, & ldquo; vacaciones & rdquo; se almacena como una cadena. Esta cadena se divide utilizando la sintaxis de corte.




Conclusión

El & ldquo; typeerror: & lsquo; int & rsquo; el objeto no se puede suscribir & rdquo; se genera un error cuando intenta acceder a un número entero como si fuera un objeto subíndice, como una lista o un diccionario.


Para resolver este problema, asegúrese de no utilizar la división o la indexación para acceder a los valores en un número entero. Si necesita realizar una operación solo disponible para objetos con subíndice, como dividir o indexando, primero debe convertir su número entero en una cadena o una lista.

Ahora está listo para resolver esto Python TypeError como un experto





El objeto python int no es subscriptable: StackOverflow Questions

Tutorials