Python如何实现自定义函数校验指定学生对应科目是否通过考核
Python 学生科目通过检查函数实现
前提说明
你提供的原始students字典存在语法问题,成绩F、C、B等没有加字符串引号,运行会报变量未定义错误,修正后结构如下:
students = { 'Peter': ['Economy', {'PRO100': 'B', 'PRO110': 'C', 'DAT130': 'F'}, 'James': ['Psychology', {'MAT120': 'C', 'PRO100': 'B', 'DAT120': 'A'}] }
for循环版本实现逻辑
- 第一步:遍历
students字典的所有键值对,匹配传入的学生姓名 - 第二步:匹配到对应学生后,遍历该学生的成绩子字典,匹配传入的科目编号
- 第三步:匹配到对应科目后,判断成绩是否不等于
'F',返回对应布尔值 - 未匹配到学生/对应科目时默认返回False
完整代码实现
def check(student, subject): # 遍历外层学生字典 for stu_name, stu_info in students.items(): if stu_name == student: # 提取学生信息列表的第二个元素是成绩字典 score_dict = stu_info[1] # 遍历成绩字典匹配科目 for sub_id, score in score_dict.items(): if sub_id == subject: return score != 'F' # 未找到对应学生或科目时返回False return False
调用测试效果
check('Peter', 'PRO100') # 输出:True check('Peter', 'DAT130') # 输出:False
内容的提问来源于stack exchange,提问作者Jacob
相关产品推荐
相关产品推荐

