Эффективный способ зацикливания - PullRequest
2 голосов
/ 14 марта 2020

У меня есть следующий код, и он работает, но, поскольку я хочу освоить свои навыки в python, я хотел бы узнать ваше мнение о том, как улучшить код и сделать его эффективным. x

value - определенное значение, которое пользователь выбирает

a=[10,30,50,20]


def math():
    if value =='Math':return a[0]
    if value =='Biology':return a[1]
    if value =='Chemistry':return a[2]
    if value =='Literature':return a[3]

Есть ли способ автоматически l oop a[0:] с заданными значениями? Я думал о словаре, но здесь мне дают условные заявления. Любая помощь будет оценена.

Ответы [ 2 ]

4 голосов
/ 14 марта 2020

Это может быть альтернативой, как в случае переключения (так как python дозы не имеют операторов переключения) в других языках. Вы можете попробовать следующий код:

def switch_case(arg):
    switcher = {
        'Math' : 10,
        'Biology' : 30,
        'Chemistry' : 50,
        'Literature' : 20
    }
    return switcher.get(arg, 'Invalid subject!')

subject = input('Enter the subject : ')
print(switch_case(subject))
4 голосов
/ 14 марта 2020

Да, словарь будет подходящей структурой.

grades = {"Math": 10,
          "Biology": 30,
          "Chemistry": 50,
          "Literature": 20}

topic = input()
try:
    print(grades[topic])
except KeyError:
    print(f'There is no available grade for the topic "{topic}".')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...