为了账号安全,请及时绑定邮箱和手机立即绑定

如何为下面给出的代码段添加“格式”?

如何为下面给出的代码段添加“格式”?

慕无忌1623718 2021-12-21 16:25:53
   zip(a,b,c,d)   with open('output.dat', 'w') as f:   print >>f, ("%-25s %-25s %-25s %s" %(x, y, z, k))   writer = csv.writer(f, delimiter='\t')   writer.writerows(zip(a,b,c,d))这段代码的输出就像51715.505899065996  2724172.4436709681  3081070.212397085   3419080.1274145059 我想以指数的形式写这些数字并四舍五入,例如第一个输出5.172E4 ........我怎样才能做到这一点 ?
查看完整描述

2 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

您可以使用科学记数法格式,如下所示:


num = 51715.505899065996

# .3 to keep 3 digit in fractional part

print('%.3e' % num)

print('{:.3e}'.format(num))

# 5.172e+04

对于您的场景,您可以按地图使用格式,我将a, b, c,d视为列表,我不知道我是否对此有误解:


a = [51715.505899065996, 2724172.4436]

b = [2724172.4436709681, 81070.2123]

c = [3081070.212397085, 715.50589906599]

d = [3419080.1274145059, 9080.12741450]

zip(a,b,c,d)

with open('output.dat', 'w') as f:

    # print >>f, ("%-25s %-25s %-25s %s" %(x, y, z, k))

    writer = csv.writer(f, delimiter='\t')

    for A, B, C, D in zip(a,b,c,d):

        writer.writerow(map(lambda x:'{:.3e}'.format(x), (A,B,C,D)))

希望对你有帮助。


查看完整回答
反对 回复 2021-12-21
?
慕仙森

TA贡献1827条经验 获得超7个赞

print('%.xe' % y)print('{:.xe}'.format(y)将打印一些y科学记数法,用一个小数精度x地方

例如,print('%.2e' % 12)将打印1.20e+.01


查看完整回答
反对 回复 2021-12-21
  • 2 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信