Python成绩转换。学校拟将学生成绩从百分制转换为五级制。但由于对于不同班级来说,人数是不同的,因此需要将数据先保存在列表(列表长度不定,你需要在程序中控制是否结束成绩的输入),然后将成绩转换为等级,并保存在列表中。 样例输入及输出: 输入百分制成绩(q退出):83输入百分制成绩(q退出):8u3输入数据出错 输入百分制成绩(q退出):59输入百分制成绩(q退出):66.6输入百分制成绩 输入数据出错! (q退出):-1 输入百分制成绩(q退出):100 输入百分制成绩(q退出):q 等级分别为:良,不及格,及格,优秀
时间: 2023-12-15 20:04:28 浏览: 72
好的,这是一个成绩转换的问题,我会尽力回答。以下是一种可能的 Python 代码实现:
```python
# 定义百分制到等级的转换函数
def score_to_grade(score):
if score >= 90:
return '优秀'
elif score >= 80:
return '良'
elif score >= 60:
return '及格'
else:
return '不及格'
# 初始化成绩列表
scores = []
# 循环读入百分制成绩,并转换为等级
while True:
score_str = input('输入百分制成绩(q退出):')
if score_str == 'q':
break
try:
score = float(score_str)
if score < 0 or score > 100:
raise ValueError('输入数据出错!')
grade = score_to_grade(score)
scores.append(grade)
except ValueError:
print('输入数据出错!')
# 输出等级列表
print('等级分别为:{}'.format(','.join(scores)))
```
这段代码中,我们首先定义了一个 `score_to_grade` 函数,用于将百分制成绩转换为等级。然后初始化一个空列表 `scores`,用于保存每个学生的等级。接着,我们使用一个无限循环读入百分制成绩,直到用户输入字母 `q` 退出循环。在读入每个成绩后,我们使用 `try except` 语句捕获可能产生的异常,包括输入数据格式错误、超出成绩范围等。如果输入数据无误,就调用 `score_to_grade` 函数将其转换为等级,并添加到 `scores` 列表中。最后,我们使用字符串的 `join` 方法将等级列表转换为字符串,并输出到屏幕上。
希望这个代码可以帮到你!如果你还有其他问题,可以继续问我。
阅读全文