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