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
您确定所有变量的类型都正确吗? 试用
打印(类型(值))
确定这个事实。始终可以使用铸造浮子(变量)