如何用Python编写for循环计算不同单元数的租金与利润?
修正后的代码及问题说明
先看你给出的初始代码,存在几个关键问题,以下是修正后的正确代码:
# 定义用户输入的参数(示例值) initial_units = 50 base_rent = 600 rent_increase = 30 maintenance_cost = 37 # 打印表头,仅需输出一次 print(f'{"出租单元数":<10} {"当前租金":<10} {"利润":<10}') # 从初始单元数递减遍历到1 for unit in range(initial_units, 0, -1): # 计算当前单元数对应的租金:每少租1个单元,租金涨一次 current_rent = base_rent + (initial_units - unit) * rent_increase # 代入公式计算利润,用当前租金而非初始租金 profit = unit * (current_rent - maintenance_cost) # 格式化输出,保证排版对齐 print(f'{unit:<10} {current_rent:<10} {profit:<10}')
原代码的核心问题:
- 租金逻辑错误:原代码每次循环只给租金加一次涨幅,实际逻辑应为「每减少1个出租单元,租金上涨一次」,比如从50降到49时租金涨30,降到48时再涨30,需要用初始单元数减当前单元数得到涨价次数,再乘以涨幅。
- 表头重复输出:原代码把表头放在循环内部,导致每输出一行数据就打印一次表头,应该移到循环外部。
- 利润计算错误:原代码用初始租金计算利润,而非每次调整后的当前租金,结果完全不符合需求。
- 变量名不一致:
increase_Rent和输入参数increase_rent大小写不统一,容易引发语法错误。
示例输出(用题目给定参数):
出租单元数 当前租金 利润 50 600 28150 49 630 28927 48 660 29568 ... 1 2070 2033
内容的提问来源于stack exchange,提问作者Processing
相关产品推荐
相关产品推荐

