簡體   English   中英

檢查學生是否通過了 class

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM