Python 将品脱单位格式化为短格式符号
假设我有一个任意品脱的量Python 将品脱单位格式化为短格式符号,python,pint,Python,Pint,假设我有一个任意品脱的量q。有没有一种方法可以将其单位显示为符号缩写形式,而不是完整的单词 换句话说,我如何编码unit\u symbol()使其返回“m”,而不是“meter”;“千克”不是“千克”;等是否有方法检索与数量当前单位同义的缩写形式单位符号 导入品脱 ureg=pint.UnitRegistry() Q=单位数量 def装置符号(q:品脱数量)->str: #打算返回“m”,而不是“meter” #“千克”不是“千克” #等等。 # ??? 返回q.单位#返回长格式单位、“米”、“
q
。有没有一种方法可以将其单位显示为符号缩写形式,而不是完整的单词
换句话说,我如何编码unit\u symbol()
使其返回“m”,而不是“meter”;“千克”不是“千克”;等是否有方法检索与数量当前单位同义的缩写形式单位符号
导入品脱
ureg=pint.UnitRegistry()
Q=单位数量
def装置符号(q:品脱数量)->str:
#打算返回“m”,而不是“meter”
#“千克”不是“千克”
#等等。
# ???
返回q.单位#返回长格式单位、“米”、“千克”等:-(
q=q_u42,ureg.m)
打印(单位符号(q))#“米”…而我想要“m”
上述方法显然无法实现这一点;它返回长格式单位。我发现
但它似乎有点笨拙:将单元转换为字符串,然后再次解析该字符串
此外,对于复合单元(例如:
q=q(42,“m”)/q(1,“秒”)
ureg.get_符号(str(q单位))
#未定义的默认错误:单位注册表中未定义“米/秒”
您可以使用
'~'
作为单位格式的规范:
q = Q_(42, "m") / Q_(1, "second")
print(format(q, '~')) # 42.0 m / s
print(format(q.u, '~')) # m / s
此功能显然没有文档记录,但可以从for单元中推断出来。\uuu format\uuuu
(在该页面上搜索“~”
,以快速导航到相关代码段)
q = Q_(42, "m") / Q_(1, "second")
print(format(q, '~')) # 42.0 m / s
print(format(q.u, '~')) # m / s