
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 语句被执行,循环立即终止,所以只会输出 0、1、2。
2. continue 关键字
- 功能:
continue用于跳过当前循环中剩余的语句,直接开始下一次循环的迭代。也就是说,当遇到continue时,程序会忽略continue之后的代码,直接进入下一次循环。 - 使用场景:当满足特定条件,需要跳过本次循环的某些操作,但不希望终止整个循环时使用。
- 示例代码:
for i in range(5):
if i == 3:
continue
print(i)
在这段代码中,当 i 的值为 3 时,continue 语句被执行,print(i) 这行代码会被跳过,直接进入下一次循环,所以会输出 0、1、2、4。
3. 总结
break是彻底终止循环,不再进行后续的迭代;而continue只是跳过当前这一次迭代,循环会继续执行后续的迭代。- 选择使用
break还是continue取决于具体的需求,若要提前结束整个循环,就用break;若只是想跳过当前迭代的部分操作,就用continue。
2959

被折叠的 条评论
为什么被折叠?



