Typeerror: can’t Multiply Sequence by non-int of type 'str'

Asked

Viewed 1,940 times

2

My problem is this: when I go to execute the code of an exercise it gives me an error that I’m not understanding why it happens.

Typeerror: can’t Multiply Sequence by non-int of type 'str'

produtos = input('Lista com produtos:')
quantidade = input('Lista com quantidade:')
preco = input('Preco dos produtos:')
def sub_total(produtos,quantidade, preco):
    z = 0
    for x in range(len(produtos)):
        print (produtos[x], quantidade[x]*preco[x],'eur')
        z+=quantidade[x]*preco[x]        

    print ('Total:',z,'eur')    
sub_total(produtos, quantidade, preco)

Obs.: Products, quantity and price must be executed in lists.

  • This is Python 2 or 3?

  • This is python 3

1 answer

2


The function input() does not return a list, but a string. It is necessary to break the string into spaces, generating a list of strings, and then transforming them into integers, so that arithmetic operations can be performed with them:

produtos = input('Lista com produtos:').split()
produtos = list(map(int, produtos))
quantidade = input('Lista com quantidade:').split()
quantidade = list(map(int, quantidade))
preco = input('Preco dos produtos:').split()
preco = list(map(int, preco))

Browser other questions tagged

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