繁体   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