无法从其他函数中获取信息以找到高于和低于平均值的10

时间:2018-11-29 04:04:19

标签: python list function average

我正在尝试制作4个单独的函数,以在输出文件中创建10000个函数的随机列表,然后找到1到100范围内所有数字的平均值,然后找出其中10个以上和10个以下的数字平均。这是我一直在做的事情的粗略基础,但是我不知道从这里去哪里

run_again = 'y'

while run_again == 'y':
    widget = 10.55
    gidget = 7.30
    doodad = 5.25
    print('1 - Create a new Invoice Order')
    print('2 - Add an additional Invoice Order')
    print('3 - Display all Invoice Orders')
    print('4 - QUIT')
    choice = int(input('Enter 1,2,3, or 4: '))
    if (choice == 1):
                 invoice_file = open('invoices.txt', 'w')
                 ID = input('1 of 4 - Enter customer ID: ')
                 numwidgets = int(input('2 of 4 - Enter number of Widgets'
                                        ' Ordered @ $10.55 each: '))
                 numgidgets = int(input('3 of 4 - Enter number of Gidgets'
                                        '(Ordered @ $7.50 each): '))
                 numdoodads = int(input('4 of 4 - Enter number of Doodads'
                                        '(Ordered @ $5.25 each: '))
                 invoice_file.write(ID + '\n')
                 invoice_file.write(str(numwidgets) + '\n')
                 invoice_file.write(str(numgidgets) + '\n')
                 invoice_file.write(str(numdoodads) + '\n')

                 invoice_file.close()
                 print('Data has been added to file invoices.txt')

    if (choice == 2):
                 invoice_file = open('invoices.txt', 'a')
                 ID = input('1 of 4 - Enter customer ID: ')
                 numwidgets = int(input('2 of 4 - Enter number of Widgets'
                                        ' Ordered @ $10.55 each: '))
                 numgidgets = int(input('3 of 4 - Enter number of Gidgets'
                                        '(Ordered @ $7.50 each): '))
                 numdoodads = int(input('4 of 4 - Enter number of Doodads'
                                        '(Ordered @ $5.25 each: '))
                 invoice_file.write(ID + '\n')
                 invoice_file.write(str(numwidgets) + '\n')
                 invoice_file.write(str(numgidgets) + '\n')
                 invoice_file.write(str(numdoodads) + '\n')

                 invoice_file.close()
                 print('Data has been added to file invoices.txt')     
    if (choice == 3):
                 invoice_file = open('invoices.txt', 'r')
                 ID = invoice_file.readline()
                 numwidgets = float(invoice_file.readline())
                 numgidgets = float(invoice_file.readline())
                 numdoodads = float(invoice_file.readline())
                 records = 0
                 records += 1
                 widgettotal = widget * numwidgets
                 gidgettotal = gidget * numgidgets
                 doodadtotal = doodad * numdoodads
                 invoicetotal = widgettotal + gidgettotal + doodadtotal

                 print('Record #',records, 'Customer #',ID)
                 print(numwidgets, 'Widgets ordered @ $10.55---- $',widgettotal)
                 print(numgidgets, 'Gidgets ordered @ $7.30----$',gidgettotal)
                 print(numdoodads, 'Doodads orderd @ $5.25----$',doodadtotal)
                 print('Invoice total------------$',invoicetotal)


                 invoice_file.close()



    if (choice == 4):
                 break

    run_again = input('Would you like to run this program again?'
                      '(Enter y for yes or n for no): ')

1 个答案:

答案 0 :(得分:0)

我想您需要以下解决方案:

import random

aa = []
for i in range(10000):
    aa.append(random.randint(1,100))
avg = (sum(aa)/len(aa))
abv, blv = avg +10, avg-10

final_list = [1 if i>= abv else 2 if i<=blv else 0 for i in aa]

print ("numbers above, average+10 = ", abv , " --> ", final_list.count(1))
print ("numbers below, average-10 = ", blv , " --> ", final_list.count(2))
print ("numbers above, between(+10 and -10) = ''", blv, ":", abv , "' --> ", final_list.count(0))
相关问题