Почему я получаю TypeError: не могу умножить последовательность на non-int типа 'float'?
я печатаю, чтобы получить сумму продажи (по вводу), которая будет умножена на определенный налог с продаж (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'
3 ответов:
raw_inputвозвращает строку (последовательность символов). В Python умножение строки и поплавка не имеет определенного значения (в то время как умножение строки И целого числа имеет значение:"AB" * 3и"ABABAB"; сколько стоит"L" * 3.14? Пожалуйста, не отвечайте"LLL|"). Вам нужно разобрать строку на числовое значение.вы можете попробовать:
salesAmount = float(raw_input("Insert sale amount here\n"))
возможно, это поможет другим в будущем - у меня была такая же ошибка при попытке многократного поплавка и списка поплавков. Дело в том, что все здесь говорили о умножении поплавка со строкой (но здесь все мои элементы были плавающими), поэтому проблема заключалась в использовании оператора * в списке.
например:
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 = np.asarray(coff) * C
проблема в том, что salesAmount устанавливается в строку. Если вы введете переменную в интерпретаторе python и нажмете enter, вы увидите введенное значение, окруженное кавычками. Например, если вы ввели 56.95 вы увидите:
>>> sales_amount = raw_input("[Insert sale amount]: ") [Insert sale amount]: 56.95 >>> sales_amount '56.95'вы хотите преобразовать строку в float, прежде чем умножать ее на налог с продаж. Я оставлю это для вас, чтобы выяснить. Удачи вам!
Comments