编写累计近3天患病人数程序遇阻:第4天计算问题求助
解决指定日期患病人数计算问题
你的代码核心问题是判断条件错误(误用前3天总和的变量days判断日期,而非输入的目标日期),且未实现第4天及以后的递推计算逻辑。以下是修正后的完整代码:
# 初始化前3天的患病人数 sick_numbers = [1, 4, 64] while True: try: target_day = int(input('OUTBREAK \n What day do you want a sick count for?: ')) if target_day <= 0: print('Sorry that\'s invalid') continue # 若目标天数超过已计算范围,递推计算后续天数 while len(sick_numbers) < target_day: next_day = sum(sick_numbers[-3:]) sick_numbers.append(next_day) # 列表索引从0开始,需对目标天数减1取值 print(f'Total: {sick_numbers[target_day - 1]}') except ValueError: print('Please enter a valid integer day number')
关键说明:
- 用列表
sick_numbers存储每日患病人数,方便直接调用前3天数据求和 - 当目标天数大于已计算天数时,循环递推计算到目标天数,避免重复运算
- 新增
try-except处理非整数输入,提升程序容错性 - 统一处理所有无效输入(≤0或非整数)的提示逻辑
内容的提问来源于stack exchange,提问作者Mridge458
相关产品推荐
相关产品推荐

