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

   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 ........

我怎样才能做到这一点 ?


慕无忌1623718
浏览 140回答 2
2回答

拉莫斯之舞

您可以使用科学记数法格式,如下所示:num = 51715.505899065996# .3 to keep 3 digit in fractional partprint('%.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)))希望对你有帮助。

慕仙森

print('%.xe' % y)或print('{:.xe}'.format(y)将打印一些y科学记数法,用一个小数精度x地方例如,print('%.2e' % 12)将打印1.20e+.01
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python