如何累加多个整数取值?Python通胀率计算代码结果异常求助
个人通胀率计算代码问题排查
核心错误点
- 未实现支出累加:循环中每次输入会直接覆盖变量值,最终仅保留最后一次输入的支出数据,没有对多类别支出进行累加。
- 总支出计算逻辑完全错误:原代码错误地将最后一次的往年与当年支出相加作为往年总支出,还把最后一次当年支出翻倍作为当年总支出,完全背离累加需求。
- 公式分母使用错误:原代码的通胀率计算公式分母误用了当年总支出的错误值,导致结果偏离预期。
修正后的代码
year_of_interest = int(input('Please enter the year that you want to calculate the personal interest rate for : ')) expenditure_categories = int(input('Please enter the number of expenditure categories: ')) # 初始化总支出变量为0,用于后续累加 total_expenses_prev_year = 0 total_expenses_year_interest = 0 for i in range(expenditure_categories): print() # 补充原代码缺失的括号,实现换行效果 # 每次循环输入单类别的两年支出 prev_year_exp = int(input('Please enter expenses for previous year: ')) target_year_exp = int(input('Please enter expenses for year of interest: ')) # 累加至总支出变量 total_expenses_prev_year += prev_year_exp total_expenses_year_interest += target_year_exp # 按照预期的25%结果,使用对应公式计算(若需标准通胀率可替换分母为total_expenses_prev_year) inflation_rate = ((total_expenses_year_interest - total_expenses_prev_year) / total_expenses_year_interest) * 100 # 格式化输出结果,保留两位小数 print(f"Personal inflation rate for {year_of_interest} is {inflation_rate:.2f}")
验证结果
输入你提供的数据:
- year_of_interest = 2022
- expenditure_categories = 2
- 往年支出输入:100、200
- 目标年份支出输入:100、300
运行后将得到结果:Personal inflation rate for 2022 is 25.00,与你的预期一致。
内容的提问来源于stack exchange,提问作者Gurshaan
相关产品推荐
相关产品推荐

