首页 > 解决方案 > 将用户输入与字典和列表进行比较

问题描述

我正在努力完成学校的作业。我需要指导来制作 2 个功能。两个函数都应该输入。第一个函数将输入与值进行比较并打印密钥。第二个将输入与列表进行比较。我想要完成的是将两者结合起来,所以当调用函数时,它们会从我的成绩列表中打印正确的索引。作业的基础是制定一个程序来跟踪学校的科目和成绩。这只是程序的一部分。

我做了下面的两个功能。


# These are the lists and dictionaries i use atm

grades = {'INFO100' : 'C','INFO102' : 'B', \
          'INFO125' : 'B','INFO132' : 'A', \
          'INFO180' : '' ,'INFO216' : 'A', \
          'INFO282' : 'C','INFO284' : '' , \
          'ECON100' : 'C','ECON110' : 'C', \
          'ECON218' : '' , 'GEO100' : '' , \
          'GEO113'  : 'D', 'GEO124' : 'D',}


subjects = ['INFO100','INFO102','INFO125',\
           'INFO132','INFO180','INFO216',\
           'INFO282','INFO284','ECON100',\
           'ECON110','ECON218','GEO100' ,\
           'GEO113' ,'GEO124']

subject_code = {'Informatics' : 'INFO',\
                'Economy' : 'ECON',\
                'Geografi' : 'GEO'}

subject_level = [100,200,300,400]

def subject(): 
    for key, value in subject_code.items():
        test = input('- Subject: ')
        if test == key:
            currentValue = print(value)
            break
    level()

def level():
    test2 = int(input('- Subject Level: '))
    for i in emne_nivå:
        if test2 == i:
            pass

def grades(): #Prints all the grades.
    for key, values in grades.items():
        print(key, values)

我想要完成的是结合这两个函数,所以当调用函数时,它们会从我的主题列表中打印正确的索引。仅从各自的 subject_code 打印主题。如果主题或主题级别是空字符串,则应打印成绩字典。

# This should be the output if you type in both values

- Subject: Economy
- Subject Level: 200
ECON218
ECON221

# This should be the output if the values are empty

- Subject:
- Subject Level:
# This is where i would print the grades dict through a if statement.


# This is my current one

- Subject: Informatics
INFO
- Subject Level: 300

标签: pythonlistdictionaryinput

解决方案


不知道为什么要在两个函数中执行此操作,因为您可以在一个函数中执行此操作。另外,我认为您不在subject_level列表中。

grades = {
    'INFO100' : 'C',
    'INFO102' : 'B', 
    'INFO125' : 'B',
    'INFO132' : 'A',
    'INFO180' : '',
    'INFO216' : 'A',
    'INFO282' : 'C',
    'INFO284' : '',
    'ECON100' : 'C',
    'ECON110' : 'C',
    'ECON218' : '',
    'GEO100' : '', 
    'GEO113'  : 'D',
    'GEO124' : 'D'
}


subjects = [
    'INFO100','INFO102','INFO125', 'INFO132','INFO180','INFO216','INFO282',
    'INFO284','ECON100','ECON110','ECON218','GEO100' ,'GEO113' ,'GEO124'
]

subject_code = {
    'Informatics' : 'INFO',
    'Economy' : 'ECON',
    'Geografi' : 'GEO'
}

def get_grade():
    subject = input('- Subject: ')
    level = input('- Subject Level: ')
    code = subject_code[subject]
    level_number = level[:1]
    subject_code_level = f'{code}{level_number}'
    if level_number == '' or code =='':
        print(grades)
    else:
        for key, value in grades.items():
            if key[:5] == subject_code_level:
                if value == '':
                    print('No grade yet')
                else:
                    print(f'Course: {key}, Grade: {value}')

推荐阅读