Python技术求助:种群起始增量未正常显示,代码输出结果异常
修复种群增长计算的异常问题
嘿,我来帮你搞定这个种群数量计算的bug!咱们先拆解下原代码里的问题:
原代码里嵌套了两层for循环,外层循环遍历天数,内层又重复循环了days-1次来计算增长——这就导致第一天就把后续所有天数的增长一次性算完了,后面的天数自然只会输出同一个数值,完全不符合“每天增长一次”的需求。
修正后的代码
organisms = int(input('Enter the starting number of organisms:' )) increase = float(input('Enter the average daily increase (percentage): ')) days = int(input('Enter the number of days to multiply: ')) print('Day\tApproximate Population') # 用单独变量保存当前天数的种群数量,避免修改初始值 current_pop = organisms for day in range(1, days + 1): # 先输出当天的种群数量,格式化保留两位小数更清晰 print(f'{day}\t{current_pop:.2f}') # 计算下一天的种群数量:当前数量 × (1 + 增长率) current_pop = current_pop * (1 + increase) # 也可以写成 current_pop += current_pop * increase,两种写法效果完全一致
关键修正说明
- 移除多余嵌套循环:只需要一层循环遍历每一天,每天仅计算一次增长即可,内层循环是完全多余的错误逻辑
- 单独维护当前种群数:用
current_pop变量保存当天的数量,避免直接修改初始的organisms值,逻辑更清晰易懂 - 格式化输出:通过
:.2f语法保留两位小数,让输出的种群数量更直观易读
用你提供的测试参数(初始2,增长率0.3,10天)运行修正后的代码,就能看到每天的种群数量逐步增长的正确结果啦:
Day 1: 2.00
Day 2: 2.60
Day 3: 3.38
...
Day 10: 15.56
内容的提问来源于stack exchange,提问作者Palwin
相关产品推荐
相关产品推荐

