Вопрос задан 29.09.2023 в 11:33. Предмет Информатика. Спрашивает Кирбабин Сергей.

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
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Шабанов Даня.

Ответ:

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

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

my_list1 = a[i]

my_list2 = b[i]

my_list3 = c[i]

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

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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Проблема в вашем коде заключается в том, что вы неправильно обрабатываете список сгенерированных чисел. Вы сначала объявляете пустой список n, чтобы в него добавить сумму значений из списков a, b и c. Затем вы используете переменные my_list1, my_list2 и my_list3, чтобы извлечь значения из этих списков, но вы делаете это вне цикла, и они всегда будут содержать последние значения из соответствующих списков a, b и c.

Чтобы исправить эту проблему и вычислить среднее значение для всех сгенерированных чисел в диапазоне от 60 до 70, вам не нужно создавать отдельные списки a, b и c. Вы можете сгенерировать числа и сразу вычислить среднее значение. Вот исправленный код:

python
from random import uniform days = int(input("Enter number of days: ")) print("Generated prices:") total_sum = 0 # Переменная для суммы всех сгенерированных чисел for i in range(4): price = uniform(60, 70) total_sum += price # Добавляем значение к сумме print(f"Exchange {i + 1}: {price:.2f}") avg = total_sum / (4 * days) # Вычисляем среднее значение print("Average price:", f'{avg:.5f}')

Этот код будет генерировать числа, выводить их и затем вычислять среднее значение для всех сгенерированных чисел в диапазоне от 60 до 70.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос