TypeError: can not multiply sequence by non-int of type 'str'

0

My problem is this: when I run the code of an exercise it gives me an error that I do not understand why it happens.

  

TypeError: can not 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)

Note: Products, quantity, and price must be run in lists.

    
asked by anonymous 07.11.2016 / 21:19

1 answer

1

The input() function does not return a list, but a string. It is necessary to break the string in the spaces, generating a list of strings, and then transform 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))
    
07.11.2016 / 22:34