• Предмет: Информатика
  • Автор: anacondaVIP
  • Вопрос задан 2 года назад

Люди добрые, помогите, пожалуйста!
Никак не могу сделать это задание на Python. Уже всё перепробовала(

Спасибо большое

Приложения:

Ответы

Ответ дал: shumik666
1

Ответ:

import csv

# открываем csv файл

with open('file.csv') as File:

   data = []

   reader = csv.reader(File, delimiter=';')

   for row in reader:

       # считываем строки и добавляем их в массив data

       # (преобразуем кол-во человек в численный формат)

       data.append([row[0], int(row[1])])

   print("Input data: ", data)

   averageChange = 0  # Среднегодовое увеличение

   averageSum = data[1][1] - data[0][1]  # Переменная для суммирования значений увеличения

   maxIncreaseYear = data[1][0]  # Год с максимальным увеличением по отнош. к пред-му

   maxIncrease = data[1][1] - data[0][1]  # Максимальное увеличение между годами

   minIncreaseYear = data[1][0]  # Год с минимальным увеличением по отнош. к пред-му

   minIncrease = data[1][1] - data[0][1]  # Минимальное увеличение между годами

   # Начинаем с третьего года, т.к. уже посчитали значения между для 2-ого и 1-ого

   for i in range(2, len(data)):

       # суммируем значение увеличения численности

       averageSum += (data[i][1] - data[i - 1][1])

       # Ищем макс. увеличение

       if (data[i][1] - data[i - 1][1]) > maxIncrease:

           maxIncrease = data[i][1] - data[i - 1][1]

           maxIncreaseYear = data[i][0]

       # Ищем мин. увеличение

       if (data[i][1] - data[i - 1][1]) < minIncrease:

           minIncrease = data[i][1] - data[i - 1][1]

           minIncreaseYear = data[i][0]

   # Делим сумму на кол-во периодов, чтоб получить среднее значение

   averageChange = averageSum / (len(data) - 1)

   print("Среднегодовое изменение: ", averageChange)

   print("Год с наиб. увеличением: ", maxIncreaseYear, ", изменение: ", maxIncrease)

   print("Год с наим. увеличением: ", minIncreaseYear, ", изменение: ", minIncrease)

Объяснение:

Всё объяснил в коде.

CSV файл для тестов у меня выглядел примерно сл. образом:

2015;1000

2016;5000

2017;7000

2018;7500

2019;9000

2020;11450

2021;13300

2022;15150

2023;17000

2024;25000

Вас заинтересует