第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python文件讀取問題,可能的infile循環(huán)?

Python文件讀取問題,可能的infile循環(huán)?

守著一只汪 2021-07-20 17:54:14
問題如下;“編寫一個(gè) Python 程序來讀取包含湖泊和魚類數(shù)據(jù)的文件,并以表格格式設(shè)置報(bào)告湖泊標(biāo)識(shí)號(hào)、湖泊名稱和魚類重量(使用帶格式的字符串區(qū)域)。該程序應(yīng)計(jì)算平均魚類重量報(bào)道?!焙醋R(shí)別;1000 Chemo1100 Greene1200 Toddy我必須閱讀的文件“FishWeights.txt”包含以下數(shù)據(jù);1000 4.01100 2.01200 1.51000 2.01000 2.21100 1.91200 2.8我的代碼;f = open("fishweights.txt")print(f.read(4), "Chemo", f.readline(4))print(f.read(5), "Greene", f.read(5))print(f.read(4), "Toddy", f.read(5))print(f.read(5), "Chemo", f.read(4))print(f.read(5), "Chemo", f.read(4))print(f.read(5), "Greene", f.read(4))print(f.read(5), "Toddy", f.read(4))我收到的輸出是;1000 Chemo  4.01100 Greene  2.01200 Toddy  1.51000  Chemo 2.01000  Chemo 2.21100  Greene 1.91200  Toddy 2.8 這是正確的,因?yàn)槲冶仨氾@示湖的 ID 號(hào)、名稱和每個(gè)湖的魚重。但我需要能夠進(jìn)行計(jì)算,在最后平均所有魚的重量。輸出應(yīng)該整齊地格式化,如下所示;1000     Chemo      4.01100     Greene     2.01200     Toddy      1.51000     Chemo      2.01000     Chemo      2.21100     Greene     1.91200     Toddy      2.8The average fish weight is: 2.34感謝任何幫助,這里只是一個(gè)初學(xué)者,尋求幫助以全面了解該主題。謝謝!
查看完整描述

3 回答

?
牧羊人nacy

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以將湖泊名稱存儲(chǔ)到字典中,將數(shù)據(jù)存儲(chǔ)在列表中。從那里你只需要fish在這個(gè)例子中循環(huán)你的列表并獲取與id. 最后,只需將weight列表中的求和并除以 的長(zhǎng)度,就可以在下面打印您的平均值fish。


with open('LakeID.txt','r') as l:

    lake = l.readlines()

    lake = dict([i.rstrip('\n').split() for i in lake])


with open('FishWeights.txt','r') as f:

    fish = f.readlines()

    fish = [i.rstrip('\n').split() for i in fish]


for i in fish:

    print(i[0],lake[i[0]],i[1])    


print('The total average is {}'.format(sum(float(i[1]) for i in fish)/len(fish))) 

還鼓勵(lì)您使用with open(..)上下文管理器來確保文件在退出時(shí)關(guān)閉。


查看完整回答
反對(duì) 回復(fù) 2021-07-28
?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

您不需要使用偏移量來讀取行。此外,您可以使用with來確保完成后文件已關(guān)閉。對(duì)于平均值,您可以將所有數(shù)字放在一個(gè)列表中,然后在最后找到平均值。使用字典將湖 ID 映射到名稱:


lakes = {

    1000: "Chemo",

    1100: "Greene",

    1200: "Toddy"

}

allWeights = []


with open("test.txt", "r") as f:

    for line in f:

        line = line.strip()  # get rid of any whitespace at the end of the line

        line = line.split()


        lake, weight = line

        lake = int(lake)

        weight = float(weight)

        print(lake, lakes[lake], weight, sep="\t")

        allWeights.append(weight)


avg = sum(allWeights) / len(allWeights)

print("The average fish weight is: {0:.2f}".format(avg)) # format to 2 decimal places

輸出:


1000    Chemo   4.0

1100    Greene  2.0

1200    Toddy   1.5

1000    Chemo   2.0

1000    Chemo   2.2

1100    Greene  1.9

1200    Toddy   2.8

The average fish weight is: 2.34

有更有效的方法可以做到這一點(diǎn),但這可能是幫助您了解正在發(fā)生的事情的最簡(jiǎn)單的方法。


查看完整回答
反對(duì) 回復(fù) 2021-07-28
  • 3 回答
  • 0 關(guān)注
  • 267 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)