Условия задачи:

 

Данные о населении. Среди исходного кода главы 7 вы найдете файл USPopulation.txt. В нем хранятся данные о среднегодовой численности населения США в тысячах с 1950 по 1990 год. Первая строка в файле содержит численность населения в 1950 году, вторая
строка - численность населения в 1951 году и т. д.
Напишите программу, которая считывает содержимое файла в список. Программа долж­на показать приведенные ниже данные:
• среднегодовое изменение численности населения в течение указанного периода вре­мени;
• год с наибольшим увеличением численности населения в течение указанного периода времени;
• год с наименьшим увеличением численности населения в течение указанного периода времени.

 

Решение задачи:

#для решения этой задачи нужно определить разницу между текущим
#годом и будущим насколько увеличилось население. Для этого создаем
#список на основе файла с популяций. После этого перебираем список и 
#определяем разницу между текущим годом и следующим и делаем список 
#изменений. Он будет меньше на 1 чем список популяции. После этого 
#определяем средне значение.  для определния года к стартовому году 
#добавляем индекс полученный от нужного значения не забываем добавлять
#1 так как какие были изменения в 1950 нам не известно  

def main():
      START = 1950
      FINISH = 1990
      def get_population():
          list_population = []
          with open('USPopulation.txt', 'r') as in_file:
                for i in in_file:
                      list_population.append(int(i))
          list_change_population = []
          for i in range(FINISH - START-1):
                change = list_population[i+1] - list_population[i]
                list_change_population.append(change)
          return list_change_population
      list_change_population = get_population()
      average = sum(list_change_population) / len(list_change_population)
      year_max = list_change_population.index(max(list_change_population)) + START + 1
      year_min = list_change_population.index(min(list_change_population)) + START + 1
      print(f'Среднегодовое изменение численности {average},\n'
            f'год с наибольшим увеличением численности {year_max},\n'
            f'год с наименьшим увеличением численности {year_min}')
main()