【问题标题】:How to use the .format right here?如何在此处使用 .format?
【发布时间】:2019-07-15 07:02:35
【问题描述】:

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

  • 检查,随着报告的增长率,城市 B 的人口 将超过A市人口;

  • 如果城市 B 的人口不超过,你的程序应该 print "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))

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

【问题讨论】:

  • 这里的问题到底是什么?出了什么问题?您期望发生什么,实际发生什么?
  • 我的问题是如何打印人口 B 超过人口 A 的年数 除了那部分之外,该程序的其余部分似乎工作正常
  • 嗯,看起来不错。您收到错误消息吗?输出不是你期望的吗?请帮助我们为您提供帮助
  • print(f"A populacão da cidade de B vai ultrapassar em'{an} anos.")。注意引号前的“f”。
  • 所以这里的问题不在于打印...问题是合乎逻辑的。您的程序使用来自用户的input,这使得调试和帮助变得更加困难。你应该给出准确的输入和他们的预期输出

标签: python python-3.x


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-12-20
      • 2020-09-20
      • 2020-08-09
      • 2017-08-20
      • 2020-03-20
      • 2017-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多