如何在这里使用.format?

2024-10-01 00:34:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手,在这里遇到了这个问题 假设一个国家的人口是8万,每年 持续增长3%,B区人口5万人,增长率为 增长还不清楚。
制作一个程序,读取估计的人口增长率 根据增长率,你的计划应该:

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

  • 如果没有超过B市的人口,你的计划应该 打印“人口B将克服。”

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

增长率将以大于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))

我想得到的结果是 X年到人口B超过人口A在这个计划中,X将取代实际年将需要


Tags: 程序anifde国家计划人口print
2条回答

对于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))

当然,您可以使用一个简单的公式,而不是使用循环:

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.")

相关问题 更多 >