Рост населения в Python

У меня есть задание, и я не могу понять, что не так:

Напишите программу на Python, которая вычисляет прирост населения.

  • читать начальную популяцию
  • почитай сколько поколений будет рассчитано
  • спросить, хочет ли пользователь рассчитать другую популяцию Для каждого поколения популяция увеличивается на 10% за счет рождений и уменьшается на 2% за счет смертей. Оба числа будут округлены до ближайшего целого числа.

Я могу рассчитать первое поколение, но оно не вычисляет следующее поколение.

      while True:
  currentPopulation = int(input("\nWhat is the current population? "))
  generations = int(input("\nHow many generations do you want to wait? "))
  
  for newPopulation in range (1, (generations + 1)):
    # calculate number of births (+10%) and add to population
    births = currentPopulation + round(currentPopulation * 0.1)
    # calculate the number of deaths (-2%) and subtract deaths from population
    newPopulation = births - round(births * 0.02)
  
  printResult = print(f"\nIf population is {currentPopulation} and you wait {generations} generation(s), there will be {newPopulation} of them.")

  again = input("\n Do you want to calculate another population? (y/n) ")
  if again.lower() == "n":
    break
  elif again.lower() == "y":
    currentPopulation
  else:
    print("\nCalculating again...")
  
print("\nBye")

1 ответ

      while True:
    population = int(input("\nWhat is the current population? "))
    currentPopulation = population
    generations = int(input("\nHow many generations do you want to wait? "))

    for _ in range(generations):
        # calculate number of births (+10%) and add to population
        births = currentPopulation + round(currentPopulation * 0.1)
        # calculate the number of deaths (-2%) and subtract deaths from population
        currentPopulation = births - round(births * 0.02)

    print(
        f"\nIf population is {population} and you wait {generations} generation(s), there will be {currentPopulation} of them.")

    again = input("\n Do you want to calculate another population? (y/n) ")
    if again.lower() == "n":
        break
    else:
        print("\nCalculating again...")

print("\nBye")
Другие вопросы по тегам