网站首页 > 技术文章 正文
任务要求
1.输入成绩直到用户输入-1结束。
2.统计以下分数段人数:
- 60分以下
- 60~69分
- 70~79分
- 80~89分
- 90~100分
3.输出各分数段人数。
任务分析
1.输入处理:使用while循环持续读取用户输入,直到检测到-1时终止。
2.分段逻辑:
- 方法一:直接通过if-elif条件判断分数所属区间。
- 方法二:利用字典存储分数段范围,减少重复代码。
- 方法三:通过数学计算(如整除10)简化分段逻辑。
3.统计存储:使用字典或列表计数器记录各区间人数。
任务实现
方法一:基础条件判断
# 初始化计数器
counters = {0: 0, 1: 0, 2: 0, 3: 0, 4: 0}
while True:
score = input("请输入成绩(输入-1结束):")
if score == "-1":
break
try:
score = int(score)
if 0 <= score < 60:
counters[0] += 1
elif 60 <= score <= 69:
counters[1] += 1
elif 70 <= score <= 79:
counters[2] += 1
elif 80 <= score <= 89:
counters[3] += 1
elif 90 <= score <= 100:
counters[4] += 1
except ValueError:
print("输入无效,请重新输入!")
# 输出结果
ranges = ["60分以下", "60~69分", "70~79分", "80~89分", "90~100分"]
for i in range(5):
print(f"{ranges[i]}人数:{counters[i]}")
说明:直接通过if-elif链判断分数区间,逻辑直观但代码冗余。适用于初学者理解分段逻辑。
方法二:字典映射分段规则
# 定义分段规则(下限: 区间索引)
rules = {90: 4, 80: 3, 70: 2, 60: 1, 0: 0}
counters = [0] * 5
while True:
score = input("请输入成绩(输入-1结束):")
if score == "-1":
break
try:
score = int(score)
for limit in sorted(rules.keys(), reverse=True):
if score >= limit:
idx = rules[limit] if limit != 0 or score < 60 else 0
counters[idx] += 1
break
except ValueError:
print("输入无效!")
# 输出结果
ranges = ["60分以下", "60~69", "70~79", "80~89", "90~100"]
for i, num in enumerate(counters):
print(f"{ranges[i]}人数:{num}")
说明:利用字典定义分段规则,通过逆序遍历键值实现动态匹配。优势在于规则可灵活扩展(如新增分段只需修改字典)。
方法三:数学计算分组
counters = [0] * 5
while True:
score = input("请输入成绩(输入-1结束):")
if score == "-1":
break
try:
score = int(score)
if 0 <= score < 60:
counters[0] += 1
else:
group = (score // 10) 5 # 60分以上计算分组索引
idx = min(max(group, 1), 4) # 限制索引在1~4范围内
counters[idx] += 1
except:
print("输入错误!")
print("统计结果:")
print(f"60分以下:{counters[0]}")
print(f"60~69分:{counters[1]}")
print(f"70~79分:{counters[2]}")
print(f"80~89分:{counters[3]}")
print(f"90~100分:{counters[4]}")
说明:通过整除运算score//10将分数转换为十位数值,再调整索引范围。代码简洁但需处理边界值(如100分需特殊处理)。
运行结果
从键盘上输入字符串“98”、“86”、“45”、“68”、“78”、“-1”。
请输入成绩(输入-1结束):98
请输入成绩(输入-1结束):86
请输入成绩(输入-1结束):45
请输入成绩(输入-1结束):68
请输入成绩(输入-1结束):78
请输入成绩(输入-1结束):-1
60分以下人数:1
60~69分人数:1
70~79分人数:1
80~89分人数:1
90~100分人数:1
进程已结束,退出代码为 0
猜你喜欢
- 2025-04-27 用python编程统计各班学生总分各分数段人数
- 263℃Python短文,Python中的嵌套条件语句(六)
- 262℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 256℃Python实现字符串小写转大写并写入文件
- 255℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 114℃原来2025是完美的平方年,一起探索六种平方的算吧
- 96℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 87℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)