python基础:平均绩点

import sys

total_dict = {'A', 'B', 'C', 'D', 'F'}  # 这是一个集合
map_dict = {'A': 4, 'B': 3, 'C': 2, 'D': 1, 'F': 0}

for line in sys.stdin:
    line = line.strip()
    if not line:  # 检查是否为空行,如果是则跳过
        break  # 空行时退出循环
    
    lines_dict = line.split()
    n = len(lines_dict)
    
    if n == 0:  # 额外检查,防止除以零
        continue
    
    sum_n = 0.0
    invalid = False
    
    for x in lines_dict:
        if x not in total_dict:
            print('Unknown')
            invalid = True
            break
        else:
            number = map_dict[x]
            sum_n = sum_n + number
    
    if not invalid:  # 只有在没有无效字符的情况下才计算平均值
        average = sum_n / n
        print(f"{average:.2f}")

自定义映射字典

如果想要按照自己设定的规则进行字符到数字的映射,可以创建字典来实现。
示例代码:

mapping_dict = {
    'A': 1,
    'B': 2,
    'C': 3
}
char = 'B'
if char in mapping_dict:
    num = mapping_dict[char]
    print(num)  # 输出2

在 Python 里,break 语句只能跳出当前所在的那一层循环。若要在内层循环执行到某一步,触发特定关键词后跳出两层循环,有几种可行的办法,下面为你详细介绍:

方法一:使用标志变量

借助一个标志变量来记录是否需要跳出两层循环。当内层循环触发关键词时,把标志变量的值设为 True,接着在外层循环里检查这个标志变量,若为 True 就跳出外层循环。

下面是示例代码:

# 定义一个标志变量,初始值为 False
should_break = False
# 外层循环
for i in range(5):
    # 内层循环
    for j in range(5):
        # 假设触发关键词是 'stop'
        if j == 3:
            # 触发关键词,将标志变量设为 True
            should_break = True
            break
    if should_break:
        break
print("跳出两层循环")

在上述代码中,定义了标志变量 should_break,当内层循环里 j 等于 3 时,将 should_break 设为 True,并跳出内层循环。接着在外层循环中检查 should_break 的值,若为 True 就跳出外层循环。

方法二:将循环封装成函数,使用 return

把两层循环封装到一个函数里,当内层循环触发关键词时,使用 return 语句直接从函数中返回,从而跳出两层循环。

下面是示例代码:

def nested_loop():
    # 外层循环
    for i in range(5):
        # 内层循环
        for j in range(5):
            # 假设触发关键词是 'stop'
            if j == 3:
                # 触发关键词,直接从函数返回
                return
    return

nested_loop()
print("跳出两层循环")

在上述代码中,把两层循环封装到 nested_loop 函数里,当内层循环里 j 等于 3 时,使用 return 语句从函数中返回,这样就跳出了两层循环。

1.break 关键字

  • 功能break 用于立即终止当前所在的循环,不再执行循环中剩余的语句,并且跳出该循环体,继续执行循环之后的代码。
  • 使用场景:当满足特定条件,需要提前结束整个循环时使用。
  • 示例代码
for i in range(5):
    if i == 3:
        break
    print(i)

在上述代码中,当 i 的值为 3 时,break 语句被执行,循环立即终止,所以只会输出 012

2. continue 关键字

  • 功能continue 用于跳过当前循环中剩余的语句,直接开始下一次循环的迭代。也就是说,当遇到 continue 时,程序会忽略 continue 之后的代码,直接进入下一次循环。
  • 使用场景:当满足特定条件,需要跳过本次循环的某些操作,但不希望终止整个循环时使用。
  • 示例代码
for i in range(5):
    if i == 3:
        continue
    print(i)

在这段代码中,当 i 的值为 3 时,continue 语句被执行,print(i) 这行代码会被跳过,直接进入下一次循环,所以会输出 0124

3. 总结

  • break 是彻底终止循环,不再进行后续的迭代;而 continue 只是跳过当前这一次迭代,循环会继续执行后续的迭代。
  • 选择使用 break 还是 continue 取决于具体的需求,若要提前结束整个循环,就用 break;若只是想跳过当前迭代的部分操作,就用 continue

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值