Python教练新增会员分类统计程序输出异常问题排查
问题修复:教练会员数统计程序
原代码核心问题
- 输入循环仅执行4次,未覆盖要求的15位教练
- 教练信息存储错误:每次循环都会覆盖变量
L,最终仅保留最后一位教练的数据 - 统计逻辑偏差:遍历对象是单个教练的信息而非所有教练,且始终用最后一位教练的会员数
n做判断 - 计数器赋值错误:
count1 = +1是直接赋值为1而非累加,正确写法应为count1 += 1 - 多余的
totcount += 1语句干扰统计流程 - 打印语句放在循环内部,导致每次遍历都输出结果,无法展示最终统计值
修正后的代码
# 存储所有教练的姓名和会员数 trainers = [] # 初始化各区间计数器 count_0_5 = 0 count_6_10 = 0 count_11_15 = 0 # 输入15位教练信息 for totcount in range(1, 16): name = input(f"Enter Trainer {totcount} Name: ") enrollees = int(input(f"Enter Trainer {totcount} # of enrollees: ")) trainers.append([name, enrollees]) # 统计各区间教练数量 for trainer in trainers: num = trainer[1] if 0 <= num <= 5: count_0_5 += 1 elif 6 <= num <= 10: count_6_10 += 1 elif 11 <= num <= 15: count_11_15 += 1 else: print(f"警告:教练{trainer[0]}的会员数{num}超出统计区间") # 输出最终统计结果 print(f"{count_0_5} trainers have 0-5 new enrollees.") print(f"{count_6_10} trainers have 6-10 new enrollees.") print(f"{count_11_15} trainers have 11-15 new enrollees.")
修正说明
- 用
range(1,16)确保循环执行15次,完成所有教练信息的输入 - 新增
trainers列表统一存储所有教练数据,避免单变量覆盖导致的数据丢失 - 遍历
trainers列表,逐个读取每位教练的会员数进行区间判断 - 修正计数器累加逻辑,保证统计结果准确
- 将打印语句移至统计完成后,仅输出最终汇总数据
- 添加超出区间的警告提示,提升程序的健壮性
内容的提问来源于stack exchange,提问作者Shawngilbert107
相关产品推荐
相关产品推荐

