Сравнение ввода пользователя со словарем и списком - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь закончить задание для школы. Мне нужно руководство, чтобы сделать 2 функции. Обе функции должны вводить. Первая функция сравнивает ввод со значением и печатает ключ. Второй сравнивает входные данные со списком. То, что я пытаюсь сделать, это объединить их, чтобы при вызове функций они печатали правильный индекс из моего списка grades . Задание основано на создании программы для отслеживания предметов и оценок в школе. Это только часть программы.

Я сделал две функции ниже.


# 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)

Что я пытаюсь сделать, это объединить две функции, поэтому, когда функциипри вызове они напечатали бы правильный индекс из моего списка субъектов . Печать только предметов из соответствующих им сюжетных кодов. Если либо предмет, либо предметный уровень - пустая строка, она должна вывести диктант оценок.

# 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

1 Ответ

0 голосов
/ 06 ноября 2019

Не уверен, почему вы хотите сделать это в двух функциях, поскольку вы можете сделать это в одной. Кроме того, я думаю, что вы не список 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}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...