最近做模电作业和实验时用手机计算器计算感觉很不流畅,然后转向Python后尽管定义了电阻并联计算,但还是不太满意,尤其是遇到多个表达式并联时,会有很多组括号需要嵌套,使用不便。另外还有,经常遇到如20k等大电阻时,不想输入多个0来进行换算。
针对以上这些问题,写了一个能够简单快捷的计算多组电阻并联表达式的函数,并支持输入‘k‘来代替‘×1000’。
计算时需要定义如’(200k * 0.184 + 20k)//20k//(200+101*100)'格式的字符串,调用定义好的solve()函数可对字符串格式并联表达式进行计算。
函数代码:
#并联计算
def B(r1,r2):
return (r1*r2) / (r1+r2)
#实现对字符串表达式的计算
#输入为如'(200k * 0.184 + 20k)//20k//(200+101*100)'格式的字符串
def solve(s):
s1 = s.replace('k','*1000')
list_s = s1.split('//')
list_val = []
for item in list_s:
list_val.append(eval(item))
if len(list_val) == 1:
res = list_val[0]
else:
for i in range(len(list_val)-1):
if i == 0:
res = list_val[0]
res = B(res,list_val[i+1])
return res
示例: