为了账号安全,请及时绑定邮箱和手机立即绑定

类型错误:列表索引必须是整数或切片,而不是符号

类型错误:列表索引必须是整数或切片,而不是符号

茅侃侃 2021-07-12 16:23:06
所以,我得到了这段代码来解决我的电路问题(编码spyder):from sympy.solvers import solvefrom sympy import Symbol, simplifyvo = Symbol("vo") #amplitude of output voltagevr = Symbol("vr") #amplitude of voltage rir = Symbol("ir") #amplitude of R-currentic = Symbol("ic") #amplitude of C-currentil = Symbol("il") #amplitude of L-currentr = Symbol("r") #resistanceomega = Symbol("omega") #angular frequencyc = Symbol("c") #capacitancel = Symbol("l") #inductanceeq1 = (vr + vo - 1, ir - ic - il, vr - ir*r, vo - ic/(1j*omega*c), vo - 1j*omega*l*il)sol = solve(eq1, (vo, vr, ir, ic, il))vos = simplify(sol[vo])print(vos)print(sol[vo])输出为:l*omega/(I*c*l*omega**2*r + l*omega - I*r)l*omega/(I*c*l*omega**2*r + l*omega - I*r)这是Vo我当前电路的解决方案然后我更改了一些部分,eq1因为我要解决Vo另一个电路的问题,如下所示:eq1 = (ir*(r + 1/ic + il) + vo - 1, ir - ic - il - vr/r, vr - ir*r, vo - ic/(1j*omega*c), vo - 1j*omega*l*il)eq1 是我唯一更改的部分,但是当我运行它时,会出现此错误:TypeError: list indices must be integers or slices, not Symbol有谁知道如何解决这个问题?
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

从我所见,您尝试索引列表的唯一地方是在您致电时:

sol[vo]

vo是 Symbol 类型的对象,但列表要求您使用整数(或切片),正如错误所暗示的那样。例如:

sol[5]
sol[1:3]

因此,您需要先转换vo为整数,然后再使用它来索引列表。


查看完整回答
反对 回复 2021-07-27
  • 2 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信