[英]Check if a student has passed a class
我在字典中有一個列表/字典,我想檢查一個特定的人是否通過了該主題。 字典看起來像這樣:
students = {
'Peter': ['Economy', {'PRO100': 'B', 'PRO110': 'C', 'DAT130': F}],
'James': ['Psychology', {'MAT120': C, 'PRO100': B, 'DAT120': A}]
}
A是最好成績,F是不及格。 “經濟”和“心理學”顯示科目所屬的部門。
我想要這樣的 function:
def check(student, subject)
我可以在這里檢查通過/失敗:
check('Peter', 'PRO100')
>>> True
check('Peter', 'DAT130')
>>> False
我想我可以在 function 中使用 for 循環,但我不知道如何......
這是您的代碼的答案:
students = {
'Peter': [
'Economy', {
'PRO100': 'B',
'PRO110': 'C',
'DAT130': 'F'}],
'James':
['Psychology', {
'MAT120': 'C',
'PRO100': 'B',
'DAT120': 'A'}]
}
good_grades = ['A', 'B', 'C']
bad_grades = ['D', 'E', 'F']
def check(student, subject):
for subjects in students[student]:
subjectList = subjects
for grade in subjectList:
if grade == subject:
if subjectList[grade] in good_grades:
return True
if subjectList[grade] in bad_grades:
return False
return 'Not Found'
check('Peter', 'PRO100')
例子:
check('Peter', 'DAT130')
False
check('James', 'DAT120')
True
試試這個代碼:
students = {
'Peter': ['Economy', {'PRO100': 'B', 'PRO110': 'C', 'DAT130': 'F'}],
'James': ['Psychology', {'MAT120': 'C', 'PRO100': 'B', 'DAT120': 'A'}]
}
passed_grades = ['A', 'B', 'C']
def check(student, subject):
if students[student][1][subject] in passed_grades:
return True
return False
我寫了這段代碼:
def check(student, subject):
x = students.get(student)
y = x[1]
failed = 'F'
if subject in y:
if failed in y[subject]:
print('Failed')
else:
print('Passed')
check('Peter', "DAT130")
你怎么看? 有什么可以改進的? 感謝所有反饋:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.