How to resolve "'int' Object is not subscriptable" error?

Asked

Viewed 1,278 times

-2

I would like help in def below, the error appears as:

Typeerror: 'int' Object is not subscriptable

def editar(mercadoria):  
    print("\nEditar mercadoria: \n")     
    produto = input("\nDigite o produto a ser editado:")  
    marca = input("\nDigite a marca do produto:")  

 for i in range(len(mercadoria)):  

 if produto == i["produto"] and marca == i["marca"]:  
        print("\nAbaixo, digite os NOVOS dados.")  
        mercadoria[i]["produto"] = input("\nDigite o nome do produto:")  
        mercadoria[i]["marca"] = input("\nDigite a marca:")  
        mercadoria[i]["preço"] = input("\nDigite o preço unitário:")  
        mercadoria[i]["quantidade"] = input("\nDigite a quantidade recebida:")  
        print("\nDados atualizados com sucesso!")  
  • range returns a sequence of integers, so there is no way you pick a position within an integer, i['product']

1 answer

0


The error in your code is being generated because the range returns whole numbers. Soon you cannot get the position of something in it and ends up generating this error.

If you happen to mercadoria for a list of dictionaries or something like that, you can scroll through it this way:

 for i in mercadoria: 

This way the error will not be generated.

See a simple example below of how the two forms of for loop work:

lista = ["pizza","lasanha","abacaxi","macarronada","biscoito"]

for i in range(len(lista)):
    print(i)

"""
Output:

0
1
2
3
4
"""

for i in lista:
    print(i)

"""
Output:

pizza
lasanha
abacaxi
macarronada
biscoito
"""

Browser other questions tagged

You are not signed in. Login or sign up in order to post.