Невозможно получить информацию из других функций, чтобы найти 10 выше и ниже среднего - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь создать 4 отдельные функции, которые создают случайный список из 10000 функций в выходном файле, затем находят среднее значение всех чисел в диапазоне от 1 до 100 и затем определяют, сколько чисел больше 10 и меньше 10 изсредний.Это очень грубая основа того, что я делал, но я не могу понять, куда идти дальше

def main():
    import random
    list=[]
    outfile = open("pa8_numbers.py","w") # open a file to WRITE to it
    for i in range(10000):
        data = random.randint(1,100)
        list.append(data)
        outfile.write(str(data)+"\n") # write the random number as a string
    outfile.close()


    print(above(list))



def numbers(data):
    list=[]
    for i in range(10000):
        data=random.randint(1,100)
        list.append(data)
    return list

def average(list):
    avg=sum(list)/len(list)
    return avg


def above(list):
    total=0
    average=sum(list)/len(list)
    averager=average+10
    for i in list:
        if average <=i and average >= i:
            total=total+i
            above.append(data[i])

            return above[i]
        else:
            break
def below(data):
    average=sum(list)/len(list)
    averager=average-10
    for i in range(len(list)):
        if average >= i and averager <= i:
            return below
        else:
            break
def final(self):
    print(above(list))
    print(average(list))
    print(below(list))






main()

1 Ответ

0 голосов
/ 29 ноября 2018

Думаю, вам нужно следующее решение:

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))
...