Python Почему при выводе среднего avg захватывает только 3 числа вместо четырех в ранге(4),что нужно исправить?

код:

from random import uniform
days = input("Enter number of days: \n\n")
print("Generated prices:")
a, b, c = [], [], []
for i in range(4):
a.append("{:= .2f}".format(uniform(60, 70)))
b.append("{:= .2f}".format(uniform(60, 70)))
c.append("{:= .2f}".format(uniform(60, 70)))

n = []
for i in range(4):
n.append((a[i]) + b[i] + c[i])
num = n[0]
days = float(days)
my_list1 = a[i]
my_list2 = b[i]
my_list3 = c[i]
list1 = str(my_list1).strip('[]')
list2 = str(my_list2).strip('[]')
list3 = str(my_list3).strip('[]')
avg = ((float(list1)) + (float(list2)) + (float(list3)))/days
print("Exchange 1:", a)
print("Exchange 2:", b)
print("Exchange 3:", c)
print("Average price:", f'{avg:.5f}')

вывод:
Enter number of days:

4
Generated prices:
Exchange 1: [' 68.69', ' 60.10', ' 60.37', ' 65.34']
Exchange 2: [' 65.36', ' 64.22', ' 67.72', ' 69.51']
Exchange 3: [' 65.68', ' 60.87', ' 61.48', ' 67.10']
Average price: 50.48750

Вместо Average price: 50.48750 должно быть число среднее всех чисел в р-не 65-70

lenayun lenayun    3   12.05.2021 21:50    1

Ответы
п7е2р1с6и4к п7е2р1с6и4к  11.06.2021 21:52

не совсем понятно, что вы хотите от программы.

я так понял, что вам нужно найти среднее значение всех элементов 3 списков, если это так, то обратите внимание вот на эти строки

my_list1 = a[i]

my_list2 = b[i]

my_list3 = c[i]

здесь сбита табуляция, однако я думаю, что вы явно прогоняете эти переменные по циклу и хотите работать с ними дальше в виде списка с переменными, в этом случае вы должны были объявить их до цикла и в самом цикле написать что то типа my_list1 += a[i], а получается, что весь цикл они просто переприсваиваются и по завершении просто равны последнему элементу a, b, c соответственно, уберите days = float(days) из цикла - занимает память и num никак не используется - ну это мелочи,

если бы вы написали что хотите от кода, я бы детальнее

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика