亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何為下面給出的代碼段添加“格式”?

如何為下面給出的代碼段添加“格式”?

慕無忌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條經驗 獲得超8個贊

print('%.xe' % y)print('{:.xe}'.format(y)將打印一些y科學記數法,用一個小數精度x地方

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


查看完整回答
反對 回復 2021-12-21
  • 2 回答
  • 0 關注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號