目录
1、问题描述
题目描述:每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。
输入描述:有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。
输出描述:每组输出结果占一行。如果输入的大写字母都在集合{A,B,C,D,F}中,则输出对应的平均绩点,结果保留两位小数。否则,输出"Unknown"。
输入示例:
python
A B C D F
B F F C C A
D C E F
输出示例:
python
2.00
1.83
Unknown
2、知识点
① 字符串格式化输出
在Python中,可以使用字符串格式化来将值插入到字符串中,从而实现特定格式的输出,字符串格式化有多种方式:
(1)使用%操作符进行格式化
python
name = "张三"
age = 20
formatted_string = "姓名:%s, 年龄:%d " % (name, age)
print(formatted_string)
使用%会将后面的变量name, age一一对应插入到对应的占位符上,其中%s表示字符串,%d表示整数, %f表示浮点数。
(2)字符串format()方法
python
name = "张三"
age = 20
formatted_string = "姓名:{}, 年龄:{}".format(name, age)
print(formatted_string)
format()方法允许使用占位符{}来插入值,并使用format()方法的参数来提供要插入的值,和上面的操作符很类似。
(3)f-字符串
python
name = "张三"
age = 20
formatted_string = f"姓名: {name},年龄:{age}"
print(formatted_string)
Python3.6及以上的版本支持f-string, 以f开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去。
② 保留小数
(1)%f
python
data = 2.3456789
print('%.2f' %data)
(2)format函数
python
data = 2.3456789
print('{:.2f}'.format(data))
以上方法均进行四舍五入。
3、代码
python
while True:
try:
s = input()
sum_grade = 0.0
count = 0
flag = 1
for char in s:
if char == 'A':
sum_grade += 4
count += 1
elif char == 'B':
sum_grade += 3
count += 1
elif char == 'C':
sum_grade += 2
count += 1
elif char == 'D':
sum_grade += 1
count += 1
elif char == 'F':
count += 1
elif char == ' ':
continue
else:
flag = 0
print("Unknown")
break
if flag:
print("{:.2f}".format(sum_grade / count))
except:
break