卡码网语言基础课 | 10. 平均绩点

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 = 20

formatted_string = "姓名:%s, 年龄:%d " % (name, age)
print(formatted_string)

使用%会将后面的变量name, age一一对应插入到对应的占位符上,其中%s表示字符串,%d表示整数, %f表示浮点数。

(2)字符串format()方法

name = "张三"
age = 20

formatted_string = "姓名:{}, 年龄:{}".format(name, age)
print(formatted_string)

format()方法允许使用占位符{}来插入值,并使用format()方法的参数来提供要插入的值,和上面的操作符很类似。

(3)f-字符串

name = "张三"
age = 20

formatted_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.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

相关推荐

  1. 语言基础课 | 10. 平均

    2024-07-16 08:46:03       25 阅读
  2. 语言基础课 | 5. A+B问题⑤

    2024-07-16 08:46:03       23 阅读
  3. 简单函数_学分

    2024-07-16 08:46:03       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 08:46:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 08:46:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 08:46:03       58 阅读
  4. Python语言-面向对象

    2024-07-16 08:46:03       69 阅读

热门阅读

  1. RoCE-SAN和RoCE区别

    2024-07-16 08:46:03       21 阅读
  2. CSS基础

    2024-07-16 08:46:03       20 阅读
  3. C# 继承

    2024-07-16 08:46:03       26 阅读
  4. 设计模式-三大分类

    2024-07-16 08:46:03       18 阅读
  5. JVM常见面试题2

    2024-07-16 08:46:03       23 阅读
  6. GitHub热门开源项目-2024版

    2024-07-16 08:46:03       24 阅读
  7. 浅谈微服务

    2024-07-16 08:46:03       18 阅读
  8. 深入理解MySQL中的MyISAM与InnoDB存储引擎

    2024-07-16 08:46:03       21 阅读
  9. 值的注意React中的一些默认行为和优化(一)

    2024-07-16 08:46:03       21 阅读
  10. 【机器学习】马尔可夫模型与隐马尔科夫模型

    2024-07-16 08:46:03       17 阅读