大家好/巨蟒大师
我想知道如何完成以下任务,到目前为止我还没有完成。
我现在拥有的是:
Q1 = 20e-6
这是一个指数,如果你打印(Q1),它会显示: 2e-5,这很好。从数学上讲。
然而,我想做的是:
我希望Q1只打印数字20,基于这是否是e-6,然后打印uC或如果这是e-9,则打印nC。
下面是一个更好理解的例子:
Q1=20e-6
当我运行打印(Q1)显示:20 Q1。
第二季=20e-9
当我运行打印(Q2)显示:20 Q2。
你能帮我弄清楚吗?
发布于 2017-06-12 09:37:45
我建议您使用si-prefix。
您可以使用pip安装它
sudo pip install si-prefix然后你可以使用这样的东西:
from si_prefix import si_format
# precision after the point
# char is the unity's char to be used
def get_format(a, char='C', precision=2):
temp = si_format(a, precision)
try:
num, prefix = temp.split()
except ValueError:
num, prefix = temp , ''
if '.' in num:
aa, bb = num.split('.')
if int(bb) == 0:
num = aa
if prefix:
return num + ' ' + prefix + char
else:
return num
tests = [20e-6, 21.46e05, 33.32e-10, 0.5e03, 0.33e-2, 112.044e-6]
for k in tests:
print get_format(k)输出:
20 uC
2.15 MC
3.33 nC
500
3.30 mC
112.04 uC发布于 2017-06-12 06:33:40
只需使用str.replace替换指数:
q1 = 'XXXXXX'
q1 = q1.replace('e-9', 'nC').replace('e-6', 'uC')
print(q1)发布于 2017-06-12 06:29:56
您可以通过拆分字符串来尝试:
'20e-9'.split('e')给出
['20', '-9']从那时起,您可以在这些值之间插入任何您想要的内容:
('u' if int(a[1]) > 0 else 'n').join(a)(与a = '20e-9'.split('e'))
https://stackoverflow.com/questions/44492650
复制相似问题