You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python作业:最小值输出错误与利息计算异常问题求助

Python作业问题:最小值与利息计算错误排查

作业要求:

编写一个使用循环从用户输入读取5个浮点数值的程序。提示用户输入数值,然后输出以下数据:总和、平均值、最大值、最小值、每个输入原始值的20%利息。使用公式:Interest_Value = Original_value + Original_value*0.2

我提交了其他作业,但这个问题一直卡着,找不到最小值输出错误、利息计算不正确的原因。附上代码和示例输出,求解决建议。

原代码

entered_number = 0
sum = 0
average = 0
max_number = 0
min_number = 0
interest = 0.2

for entered_number in range(5):
    entered_number = float(input('Enter a number: '))
    
    if entered_number > max_number:
        max_number = entered_number
    if entered_number < min_number:
        min_number = entered_number 

sum = sum + entered_number
average = sum / 5
interest = entered_number + (entered_number * interest) # removing the () didn't solve

print('Total:', sum)
print('Average:', average)
print('Maximum number:', max_number)
print('Minimum number:', min_number)
print('Interest at 20% for each entered number is: ', interest)

示例输出

Enter a number: 20
Enter a number: 30
Enter a number: 40
Enter a number: 50
Enter a number: 60
Total: 200.0
Average: 40.0
Maximum number: 60.0
Minimum number: 0
Interest at 20% for each entered number is:  90123060.0

错误点分析

  1. 最小值初始化错误:min_number初始设为0,若输入的所有数值都大于0,最小值永远不会更新,始终显示0。
  2. 总和计算逻辑错误:sum = sum + entered_number放在循环外部,只会累加最后一个输入的数值,前面的数都没被计入总和(示例输出的总和200.0应为手动写错,实际运行会得到60.0)。
  3. 利息变量冲突:用同一个interest变量既存利率0.2,又存计算后的利息值,第二次循环时interest已不是初始的0.2,导致后续计算完全混乱;且只计算了最后一个数的利息,不符合“每个输入值的利息”要求。
  4. 平均值计算时机错误:平均值基于错误的总和计算,结果自然不准确。

修正后的代码

total_sum = 0
max_number = float('-inf')
min_number = float('inf')
interest_rate = 0.2
interest_values = []

for _ in range(5):
    num = float(input('Enter a number: '))
    total_sum += num
    
    if num > max_number:
        max_number = num
    if num < min_number:
        min_number = num
    
    current_interest = num * (1 + interest_rate)
    interest_values.append(current_interest)

average = total_sum / 5

print('Total:', total_sum)
print('Average:', average)
print('Maximum number:', max_number)
print('Minimum number:', min_number)
print('Interest at 20% for each entered number is:')
for i, val in enumerate(interest_values, 1):
    print(f'  第{i}个输入值的利息: {val}')

修正说明

  • 变量命名更清晰,避免和Python内置函数(如sum)冲突
  • 最大值初始化为负无穷、最小值初始化为正无穷,确保第一个输入的数值能正确更新极值
  • 总和累加放在循环内部,每个输入值都被计入总和
  • 拆分利率和利息存储:用interest_rate固定存0.2,用列表interest_values保存每个数的利息,最后逐个输出
  • 平均值在循环结束后基于正确的总和计算

内容的提问来源于stack exchange,提问作者delaireman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 13:15:24