当前位置:  开发笔记 > 编程语言 > 正文

为什么我得到TypeError:不能将序列乘以'float'类型的非int?

如何解决《为什么我得到TypeError:不能将序列乘以'float'类型的非int?》经验,为你挑选了2个好方法。



1> Marc Gravell..:

raw_input返回一个字符串(一系列字符).在Python中,将字符串和浮点数相乘不会产生任何定义的含义(而将字符串和整数相乘则具有以下含义:"AB" * 3"ABABAB";多少是"L" * 3.14?请不要回复"LLL|").您需要将字符串解析为数值.

您可能想尝试:

salesAmount = float(raw_input("Insert sale amount here\n"))



2> Serendipity..:

也许这将在未来帮助其他人 - 我在尝试多次浮动和浮动列表时遇到了同样的错误.问题是这里的每个人都谈到浮点数与字符串相乘(但这里我的所有元素都是浮点数)所以问题实际上是在列表中使用*运算符.

例如:

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

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有