学生考试成绩可用百分制和等级制两种表示方式,编写程序实现两种成绩的互相转换,要求分别用else if级联和switch语句实现。 (1) 输入成绩等级{A,B,C,D,E},输出相应百分制的分数段。 (2) 输入百分制的分数,输出相应成绩等级{A, B,C,D,E}。
时间: 2024-10-21 09:08:33 浏览: 25
在Python中,我们可以创建两个函数来实现这个需求,一个用于等级制转百分制,另一个用于百分制转等级制。这里提供两个示例,一个是使用`if-elif`条件判断结构,另一个是使用`switch-case`模拟的`switch`语句(虽然Python本身不支持原生的`switch`关键字,但我们可以通过字典映射来实现类似功能)。
**使用`if-elif`级联实现:**
```python
def grade_to_percentage(grade):
if grade == 'A':
return 90
elif grade == 'B':
return 80
elif grade == 'C':
return 70
elif grade == 'D':
return 60
else: # E
return 50
def percentage_to_grade(percentage):
if percentage >= 90:
return 'A'
elif percentage >= 80:
return 'B'
elif percentage >= 70:
return 'C'
elif percentage >= 60:
return 'D'
else: # 50 or below
return 'E'
# 示例
grade = input("请输入成绩等级:")
print(f"百分制分数:{percentage_to_grade(grade)}")
percentage = int(input("请输入百分制分数:"))
print(f"成绩等级:{grade_to_percentage(percentage)}")
```
**使用字典模拟`switch`实现(Python版):**
```python
def grade_to_percentage(grade):
grades_dict = {'A': 90, 'B': 80, 'C': 70, 'D': 60, 'E': 50}
return grades_dict.get(grade, None)
def percentage_to_grade(percentage):
boundaries = [(90, 'A'), (80, 'B'), (70, 'C'), (60, 'D'), (50, 'E')]
for bound, grade in boundaries:
if percentage >= bound:
return grade
return None
# 示例
grade = input("请输入成绩等级:")
print(f"百分制分数:{percentage_to_grade(grade)}")
percentage = int(input("请输入百分制分数:"))
print(f"成绩等级:{grade_to_percentage(percentage)}")
```
阅读全文