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

Python while循环实现书店积分程序及总积分、平均积分统计

Serendipity书店书友会积分计算程序修改方案

完整可运行代码

# 初始化统计变量:总参与用户数、累计发放总积分
total_user = 0
total_points = 0

print("=== Serendipity书店书友会积分计算系统 ===")
print("提示:输入负数即可退出程序\n")

# 循环接收用户输入,重复运行
while True:
    # 输入合法性校验,避免非数字输入导致程序崩溃
    try:
        books = int(input("请输入当月购书数量:"))
    except ValueError:
        print("输入无效,请输入有效数字!\n")
        continue
    
    # 输入负数则终止循环,进入统计结果输出环节
    if books < 0:
        break
    
    # 根据购书数量阶梯计算对应积分
    if books < 2:
        point = 0
    elif books < 4:
        point = 5
    elif books < 6:
        point = 15
    elif books < 8:
        point = 30
    else:
        point = 60
    
    # 输出单个用户的积分计算结果
    print(f"您当月购书数量为:{books} 本")
    print(f"您可获得的奖励积分为:{point} 分\n")
    
    # 更新全局统计数据
    total_user += 1
    total_points += point

# 循环终止后输出全局统计结果
print("=== 本次运行统计结果 ===")
print(f"总参与用户数:{total_user} 人")
print(f"累计发放总积分:{total_points} 分")
# 增加除零判断,避免无有效用户时程序报错
avg_points = total_points / total_user if total_user > 0 else 0
print(f"用户人均获得积分:{avg_points:.2f} 分")

核心修改说明

  • 循环外新增两个全局统计变量,分别记录有效参与的用户总数和累计发放的总积分
  • 每次完成单个用户的积分计算后,同步更新两个统计变量的数值
  • 新增输入合法性校验,避免用户输入非数字内容导致程序崩溃
  • 循环终止后新增统计结果输出逻辑,增加除零判断适配无有效用户的场景
  • 所有提示语优化为中文,输出结构分层,可读性更强
  • 调整输入类型为整数,符合购书数量为正整数的实际业务场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:06:02