Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将品脱单位格式化为短格式符号_Python_Pint - Fatal编程技术网

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