问题描述】python将键盘输入的百分制成绩转换成五分制。转换规则:90~100(优),80~89(良),70~79(中),60~69(及格),60分以下(不及格),其它成绩非法“wrong score”提示。
时间: 2025-03-23 16:07:42 浏览: 56
### 百分制到五级制的成绩转换
为了实现将百分制成绩转换为五级制评分制度的功能,可以按照以下逻辑编写 Python 程序:
#### 功能需求分析
1. 输入一个 [0, 100] 范围内的成绩数据。
2. 输出对应的五级制等级(A、B、C、D、E)。
3. 如果输入的数据超出范围或不是有效数值,则提示“输入数据有误!”。
4. 对于 A、B、C 和 D 的等级,在输出等级的同时还需打印“祝贺你通过考试!”。
5. 使用 `try`-`except`-`else`-`finally` 结构来处理可能的异常情况,并确保无论发生什么错误都会执行最终语句。
以下是完整的代码实现以及解释:
```python
def convert_score_to_grade(score):
grades = "EEEEDCBAA"
index = score // 10 # 计算分数所在的区间索引
return grades[index]
def main():
try:
user_input = input("请输入您的百分制成绩:")
score = float(user_input)
if not (0 <= score <= 100): # 判断是否在合法范围内
raise ValueError() # 抛出异常表示非法输入
grade = convert_score_to_grade(int(score)) # 转换为整数并获取对应等级
print(f"输入成绩属于{grade}级别。")
if grade in ['A', 'B', 'C', 'D']: # 检查是否通过考试
print("祝贺你通过考试!")
except Exception as e: # 处理所有类型的异常
print("输入数据有误!")
finally: # 不管是否有异常都执行此部分
print("好好学习,天天向上!")
if __name__ == "__main__":
main()
```
#### 关键点说明
1. **函数定义**
定义了一个辅助函数 `convert_score_to_grade()` 来完成从百分制到五级制的映射操作[^2]。该方法基于十位数计算索引来定位相应的字母等级。
2. **异常捕获机制**
使用了标准的异常捕捉结构 `try...except...else...finally`,其中:
- `try`: 尝试解析用户的输入值;
- `except`: 当遇到无法解析的情况时抛出错误消息;
- `else`: 正常情况下继续后续流程;
- `finally`: 执行结束后的固定提示信息[^3]。
3. **边界条件验证**
验证用户输入是否处于合理区间 `[0, 100]` 内。如果不在这个范围内则触发自定义异常[^1]。
---
#### 示例运行结果
##### 输入正常值
输入:`95`
输出:
```
输入成绩属于A级别。
祝贺你通过考试!
好好学习,天天向上!
```
##### 输入越界值
输入:`-5`
输出:
```
输入数据有误!
好好学习,天天向上!
```
##### 输入非数字字符
输入:`abc`
输出:
```
输入数据有误!
好好学习,天天向上!
```
---
###
阅读全文
相关推荐












