Я печатаю, чтобы получить сумму продажи (по входным данным), которую нужно умножить на определенный налог с продаж (0,08), а затем распечатать общую сумму (налог с продаж, умноженный на сумму продажи).
Я столкнулся с этой ошибкой. Кто-нибудь знает, что может быть не так или есть предложения?
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'
Возможно, это поможет другим в будущем - у меня была такая же ошибка при попытке объединить число с плавающей запятой и список с плавающей запятой. Дело в том, что здесь все говорили об умножении числа с плавающей запятой на строку (но здесь все мои элементы были с плавающей запятой), поэтому проблема заключалась в использовании оператора * в списке.
Например:
import math import numpy as np alpha = 0.2 beta=1-alpha C = (-math.log(1-beta))/alpha coff = [0.0,0.01,0.0,0.35,0.98,0.001,0.0] coff *= C
Ошибка:
coff *= C TypeError: can't multiply sequence by non-int of type 'float'
Решение - преобразовать список в массив numpy:
источник
coff = [i * c for i in coff]
Проблема в том, что salesAmount задается как строка. Если вы введете переменную в интерпретаторе Python и нажмете Enter, вы увидите введенное значение в кавычках. Например, если вы ввели 56,95, вы увидите:
>>> sales_amount = raw_input("[Insert sale amount]: ") [Insert sale amount]: 56.95 >>> sales_amount '56.95'
Вы захотите преобразовать строку в число с плавающей запятой, прежде чем умножать ее на налог с продаж. Я оставлю это на ваше усмотрение. Удачи!
источник
Вы не можете умножить строку и float. Вместо этого попробуйте, как показано ниже. Он отлично работает
источник