目錄
- 1、問題描述
- 2、知識點
- ① 字符串格式化輸出
- ② 保留小數
- 3、代碼
1、問題描述
題目描述:每門課的成績分為A、B、C、D、F五個等級,為了計算平均績點,規定A、B、C、D、F分別代表4分、3分、2分、1分、0分。
輸入描述:有多組測試樣例。每組輸入數據占一行,由一個或多個大寫字母組成,字母之間由空格分隔。
輸出描述:每組輸出結果占一行。如果輸入的大寫字母都在集合{A,B,C,D,F}中,則輸出對應的平均績點,結果保留兩位小數。否則,輸出“Unknown”。
輸入示例:
A B C D F
B F F C C A
D C E F
輸出示例:
2.00
1.83
Unknown
2、知識點
① 字符串格式化輸出
在Python中,可以使用字符串格式化來將值插入到字符串中,從而實現特定格式的輸出,字符串格式化有多種方式:
(1)使用%操作符進行格式化
name = "張三"
age = 20formatted_string = "姓名:%s, 年齡:%d " % (name, age)
print(formatted_string)
使用%會將后面的變量name, age一一對應插入到對應的占位符上,其中%s表示字符串,%d表示整數, %f表示浮點數。
(2)字符串format()方法
name = "張三"
age = 20formatted_string = "姓名:{}, 年齡:{}".format(name, age)
print(formatted_string)
format()方法允許使用占位符{}來插入值,并使用format()方法的參數來提供要插入的值,和上面的操作符很類似。
(3)f-字符串
name = "張三"
age = 20formatted_string = f"姓名: {name},年齡:{age}"
print(formatted_string)
Python3.6及以上的版本支持f-string, 以f開頭,后面跟著字符串,字符串中的表達式用大括號 {} 包起來,它會將變量或表達式計算后的值替換進去。
② 保留小數
(1)%f
data = 2.3456789
print('%.2f' %data)
(2)format函數
data = 2.3456789
print('{:.2f}'.format(data))
以上方法均進行四舍五入。
3、代碼
while True:try:s = input()sum_grade = 0.0count = 0flag = 1for char in s:if char == 'A':sum_grade += 4count += 1elif char == 'B':sum_grade += 3count += 1elif char == 'C':sum_grade += 2count += 1elif char == 'D':sum_grade += 1count += 1elif char == 'F':count += 1elif char == ' ':continueelse:flag = 0print("Unknown")breakif flag:print("{:.2f}".format(sum_grade / count))except:break