python3:TypeError:can';t将序列乘以类型为'的非整数;浮动';

python3:TypeError:can';t将序列乘以类型为'的非整数;浮动';,python,typeerror,Python,Typeerror,我的程序包含这个 print("hyy") print(self.reward, self.gamma, max_val) print(self.reward + (self.gamma * max_val)) 这里的self.raward为-0.25,self.gamma为1,max_val为0 当我运行代码时,我的输出是: hyy -0.25 1 0.0 ans = goal.value_iteration() File "/Users/mac/Desktop/MDP-mast

我的程序包含这个

print("hyy")
print(self.reward, self.gamma, max_val)
print(self.reward + (self.gamma * max_val))
这里的
self.raward
为-0.25,
self.gamma
为1,
max_val
为0

当我运行代码时,我的输出是:

hyy
-0.25 1 0.0
    ans = goal.value_iteration()
  File "/Users/mac/Desktop/MDP-master/value.py", line 237, in value_iteration
    print(self.reward + (self.gamma * max_val))
TypeError: can't multiply sequence by non-int of type 'float'

前两行编译成功。为什么不是我代码块的第三行?如何修复此问题?

self.gamma
不是数字。最有可能的是,这是一根绳子。下面是一个再现错误的最小示例:

a, b, c = -0.25, '1', 0.0

a + b * c  # TypeError: can't multiply sequence by non-int of type 'float'
定义了将字符串与整数相乘,例如
'a'*2='aa'
,但不定义将字符串与浮点相乘,例如
0.0
。要转换为数字,您可以使用
float

a + float(b) * c  # -0.25

您确定所有变量的类型都正确吗? 试用
打印(类型(值))

确定这个事实。始终可以使用铸造浮子(变量)