题目
假设有5名评阅人进行论文评审。请使用字符串输入n(n>3)个参评者的5个评审结果(评审等级为A、B或C),根据等级结果判断参评者是否通过考核。判断规则是:如果出现以下情况中的任意一种则不通过,否则通过:(运行结果要通过的情况和两种不通的情况,运行效果样例如下图所示:)
(1)如果出现C则不通过;
(2)如果出现3个B则不通过。
答案
def is_passed(grades):
# 检查是否有C
if 'C' in grades:
return False, "Not Pass!"
# 检查B的数量
count_b = grades.count('B')
if count_b >= 3:
return False, "Not Pass!"
# 如果没有以上情况,则通过
return True, "Pass!"
# 示例输入
n = int(input("请输入参评人数: "))
if n <= 3:
print("n必须大于3!")
else:
grades_input = []
print("请输入等级结果:")
for i in range(n):
print(f"--------{i+1}--------")
grades_str = input().strip()
grades = grades_str
if len(grades) != 5 or not all(grade in ['A', 'B', 'C'] for grade in grades):
print("输入格式错误!请确保输入5个A、B或C的评审结果。")
continue
grades_input.append(grades)
passed, message = is_passed(''.join(grades))
print(f"{message}")
#以下可删
# 对每个参评者进行判断
#for i, grades in enumerate(grades_input):
# passed, message = is_passed(''.join(grades))
# print(f"{message}")