tipo de objeto python

Funciones y métodos de Python

& ldquo; escriba & rdquo; es una palabra clave especial en Python que denota un valor cuyo tipo es un tipo de datos. Si intenta acceder a un valor de un objeto cuyo tipo de datos es & ldquo; type & rdquo ;, encontrará el & ldquo; TypeError: & lsquo; type & rsquo; el objeto no se puede suscribir & rdquo; error.

Esta guía explica qué significa este error y por qué puede verlo. Le guía a través de un ejemplo de este error para que pueda aprender cómo corregir el error cada vez que aparece.




TypeError: & lsquo; type & rsquo; el objeto no es subscriptable

Python admite una variedad de tipos de datos . Estos tipos de datos se utilizan para almacenar valores con diferentes atributos. El tipo de datos entero, por ejemplo, almacena números enteros. El tipo de datos de cadena representa un individuo o un conjunto de caracteres.

Cada tipo de datos tiene un & ldquo; tipo & rdquo; objeto. Este objeto le permite convertir valores a un tipo de datos en particular o crear un nuevo valor con un tipo de datos en particular. Estos & ldquo; tipo & rdquo; los objetos incluyen:

Si marca la casilla & ldquo; escriba & rdquo; de estas variables, verá que son & ldquo; tipo & rdquo; objetos:

 print (type (int)) 

El resultado de este código es: & ldquo; tipo & rdquo ;.

No podemos acceder a los valores de un & ldquo; tipo & rdquo; objeto porque no almacenan ningún valor. Son una referencia para un tipo particular de datos.




Un escenario de ejemplo

Cree un programa que muestre información sobre una compra realizada en una ferretería para que se pueda imprimir un recibo fuera. Empiece por definir una lista con información sobre una compra :

El 81% de los participantes afirmó que se sentía más seguro acerca de su trabajo técnico. prospectos después de asistir a un bootcamp. 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.

Los valores en esta lista representan , en orden:

  • La marca del artículo que ha comprado un cliente
  • El nombre del artículo
  • El precio del artículo
  • Si el cliente es miembro del programa de tarjetas de fidelización de la tienda

A continuación, utilice declaraciones print () para mostrar información sobre esta compra en la consola:

 print ("Marca:" + compra [0]) print ("Nombre del producto:" + compra [1]) print ("Precio: $" + str (compra [2])) 

Imprime la marca, el nombre del producto y los valores de precio en la consola. Tienes agregó etiquetas a estos valores para que sea fácil para el usuario decir qué representa cada valor.

Convierta la compra [2] en una cadena usando str () porque este valor se almacena como un número de punto flotante y solo puede concatenar cadenas a otras cadenas.

A continuación, compruebe si un usuario es miembro del programa de tarjetas de fidelización de la tienda. hacer esto porque si un cliente no es miembro, entonces el Se le debe preguntar si le gustaría unirse al programa de tarjetas de fidelización:

 si compra [3 ] == Falso: print ("¿Le gustaría unirse a nuestro programa de tarjetas de fidelización?") Else: print ("Gracias por ser miembro de nuestro programa de tarjetas de fidelización. Ha ganado 10 puntos por realizar una compra en nuestra tienda. ") 

Si un usuario no es miembro del programa de tarjetas de fidelización, el & ldquo; if & rdquo; statement se ejecuta. De lo contrario, se ejecuta la instrucción else y se agradece al usuario por realizar una compra.

Ejecute nuestro código y vea si funciona:

Nuestro código devuelve un error.




La solución

Eche un vistazo a la línea de código ofensiva: < br>

 print ("Marca:" + compra [0]) 

El mensaje & ldquo; subscriptable & rdquo; dice que está intentando acceder a un valor mediante la indexación de un objeto como si fuera un objeto de secuencia, como una cadena, una lista o una tupla. En el código, está intentando acceder a un valor mediante la indexación de un objeto "tipo". Esto no está permitido.


Este error se ha producido porque ha definido la lista & ldquo; compra & rdquo; como un tipo de objeto en lugar de como una lista. Para solucionar este error, elimine el & ldquo; tipo & rdquo; de en nuestra lista:

 purchase = ["Steelseries", "Rival 600 Gaming Mouse", 69.99 , True] 

No es necesario usar & ldquo; type & rdquo; para declarar una lista. Solo necesita usar & ldquo; type & rdquo; para verificar el valor de un objeto. Ejecute nuestro código y vea lo que sucede:

 Marca: Steelseries Nombre del producto: Rival 600 Gaming Mouse Precio: $ 69.99 Gracias por siendo miembro de nuestro programa de tarjetas de fidelidad. Ha ganado 10 puntos por realizar una compra en nuestra tienda. 

El código imprime la información información sobre la compra. También informa que el cliente es miembro de una tarjeta de fidelización y por lo tanto ha ganado puntos por realizar una compra en la tienda.




Conclusión

El & ldquo; TypeError: & lsquo; type & rsquo; el objeto no se puede suscribir & rdquo; Se genera un error cuando intenta acceder a un objeto mediante la indexación cuyo tipo de datos es & ldquo; type & rdquo ;. Para resolver este error, asegúrese de intentar acceder únicamente a objetos iterables, como tuplas y cadenas, mediante la indexación.

¡Ahora está listo para resolver este error como un experto en Python!





tipo de objeto python: StackOverflow Questions

Tutorials