Estou digitando para obter o valor da venda (por entrada) a ser multiplicado por um imposto sobre vendas definido (0,08) e, em seguida, faço para imprimir o valor total (imposto sobre vendas vezes o valor da venda).
Eu corro para este erro. Alguém sabe o que pode estar errado ou tem alguma sugestão?
salesAmount = raw_input (["Insert sale amount here \n"])
['Insert sale amount here \n']20.99
>>> salesTax = 0.08
>>> totalAmount = salesAmount * salesTax
Traceback (most recent call last):
File "<pyshell#57>", line 1, in <module>
totalAmount = salesAmount * salesTax
TypeError: can't multiply sequence by non-int of type 'float'
Talvez isso ajude outros no futuro - eu tive o mesmo erro ao tentar múltiplo um float e uma lista de floats. O fato é que todos aqui falaram sobre multiplicar um float por uma string (mas aqui todos os meus elementos eram floats o tempo todo), então o problema estava na verdade usando o operador * em uma lista.
Por exemplo:
O erro:
A solução - converter a lista em array numpy:
fonte
coff = [i * c for i in coff]
O problema é que salesAmount está sendo definido como uma string. Se você inserir a variável no interpretador python e pressionar enter, verá o valor inserido entre aspas. Por exemplo, se você inseriu 56,95, verá:
Você vai querer converter a string em um float antes de multiplicá-la pelo imposto sobre vendas. Vou deixar isso para você descobrir. Boa sorte!
fonte
Você não pode multiplicar string e float. Em vez de tentar como abaixo. Funciona bem
fonte