python在电力系统中的应用_电力系统的Sympy和单位

就在这里分享我是如何解决自己的问题的。下面的类包含一个感兴趣的单元列表,然后可以使用该列表解析Sympy中的单元。from sympy.physics import units as u

class Electric:

units = {}

units[u.V] = 'V'

units[u.W] = 'W'

units[u.A] = 'A'

units[u.Hz] = 'Hz'

units[u.percent] = '\%'

units[u.F] = 'F'

units[u.s] = 's'

units[u.ohm] = '\Omega'

@classmethod

def identify_unit(cls, value):

for unit in cls.units.keys():

aux = value.as_coefficient(unit)

if aux:

if aux.is_number:

return aux, cls.units[unit]

return value

@classmethod

def change_factor(cls, value):

aux = abs(value[0])

if aux >= u.mega:

return value[0] / (10 ** 6), "M" + value[1]

elif aux >= u.kilo:

return value[0] / (10 ** 3), "k" + value[1]

elif aux >= 1:

return value[0], value[1]

elif aux >= u.milli:

return value[0] * (10 ** 3), "m" + value[1]

elif aux >= u.micro:

return value[0] * (10 ** 6), "\mu{}" + value[1]

else:

return value

使用示例:

^{pr2}$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值