如何在这里使用.format?

时间:2019-07-11 12:41:06

标签: python python-3.x

我是python的新手,在这里遇到这个问题 假设A国的人口为8万居民,每年 持续增长3%,并且B人口为5万居民,增长率为 增长尚不清楚。
编写程序以读取估计的人口增长率 城市B,并根据读取的增长率,您的程序应:

  • 根据报告的增长率检查城市B的人口 将超过城市A的人口;

  • 如果未超过城市B的人口,则您的程序应 打印“ B的人口将克服。”

  • 如果城市B的人口超过了,您的程序应打印“ B城市的人口将超过X年。 “,其中X必须替换 人口B将超过人口B的年数 城市A。

增长率将以大于0的浮点数表示,代表0 B城市的发展。

a = 80000
b = 50000

an = 0
while b <= a:

  a = a*0.03
  b = b*float(input())/100

  an += 1
  if a > b:            
    print("A populacão de B não vai ultrapassar")

  if b > a:        
    print("A populacão da cidade de B vai ultrapassar em'{} anos.".format(an))

我想得到的输出是 在此计划中,人口B的X年要超过人口A,而用X代替实际需要的年数

2 个答案:

答案 0 :(得分:0)

使用a人口和b人口的固定值,这是一个简单的方法。

a_population = 80000
b_population = 50000
A_GROWTH_RATE = 0.03
B_GROWTH_RATE = float(input()) / 100

if a_population > b_population and A_GROWTH_RATE >= B_GROWTH_RATE:
    print("A populacão de B não vai ultrapassar")
else:
    years = 0
    while b_population <= a_population:
        a_population += a_population * A_GROWTH_RATE
        b_population += b_population * B_GROWTH_RATE
        years += 1

    print("A populacão da cidade de B vai ultrapassar em'{} anos.".format(years))

答案 1 :(得分:0)

当然,您可以使用一个简单的公式来代替使用循环:

import math

a = 80000
b = 50000
pcent_b = float(input())/100
a_growth = 1.03
b_growth = 1 + pcent_b

anos = math.ceil(math.log(b/a, a_growth/b_growth))

if anos > 0:
    print("A população da cidade B vai ultrapassar em {} anos.".format(anos)) 
else: 
    print("A população de B não vai ultrapassar.")