簡體   English   中英

從python中的數字輸入列表中平均整數

[英]averaging integers from an input list of numbers in python

我是編碼的新手,這是python的入門編碼類。 我必須編寫一個姐妹程序,該程序使用循環來讀取和處理a.txt文檔以獲得隨機整數列表。 程序必須在文件中以空格分隔的一行上輸出所有整數。 該程序還必須輸出偶數整數的平均值和奇數整數的平均值。 兩個平均值必須精確到小數點后四位。

粗體字是我需要幫助的..這是到目前為止我所擁有的..我知道如何設置小數,但是我似乎無法弄清楚如何寫出偶數和奇數的平均值。

def main():
    total = 0

    numfile = open('mynumbers.txt','r')

    line = numfile.readline()

    while line != '':
        numb = int(line)
        print(numb,end=' ')
        line = numfile.readline()
        #calculation for average of odds
        #calculation for average of evens


    numfile.close()
    print('\n' + 'Average of the even numbers:',)
    print('Average of the odd numbers:',)
main()

代碼輸出:

98 62 60 15 74 68 51 15 

Average of the even numbers: 

Average of the odd numbers:

我的班級示例輸出:

40 90 89 57 90 19 88 78 

Average of the even numbers: 77.2000

Average of the odd numbers: 55.0000

這應該可以工作(有關說明,請參見代碼注釋):

def main():
    total = 0
    evens = []
    odds = []
    numfile = open('mynumbers.txt','r')

    line = numfile.readline()

    while line != '':
        numb = int(line)
        print(numb,end=' ')
        line = numfile.readline()
        # here you're checking each number and adding it to the apt list
        if numb%2 == 0:
           evens.append(numb)
        elif numb%2 == 1:
           odds.append(numb)

    numfile.close()
    # here you're getting the sum and rounding it
    e_avg = round(sum(evens)/len(evens),4)
    o_avg = round(sum(odds)/len(odds),4)

    print('\n' + 'Average of the even numbers: '+e_avg)
    print('Average of the odd numbers: '+o_avg)
main()

好,模( % )字符可以幫助您進行偶數和奇數運算。 首先,讓我們開始將所有數字放入列表中。

def main():
    total = 0

    numfile = open('mynumbers.txt','r')

    line = numfile.readline()

    nums = []

    while line != '':
        numb = int(line)
        print(numb,end=' ')
        nums.append(numb)
        line = numfile.readline()
        #calculation for average of odds
        #calculation for average of evens


    numfile.close()
    print('\n' + 'Average of the even numbers:',)
    print('Average of the odd numbers:',)
main()

現在,最后我們可以計算平均值。 這將為您提供平均數。 它的工作原理是將所有偶數或幾率相加,然后除以偶數或幾率。

埃文斯:

average = sum([i for i in nums if i%2==0])/len([i for i in nums if i%2==0])

和平均賠率:

average_odds = sum([i for i in nums if i%2==1])/len([i for i in nums if i%2==1])

並將它們打印到小數點后四位:

print("Even Average: {0:.5}".format(average))
print("Odd Average: {0:.5}".format(average_odds))

現在,由於這是一項家庭作業(我認為),因此您應該在完整的程序中實現它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM