Как можно проще реализовать задачу «школьного расписания»?

Здравствуйте!
Новичок в мире программирования, а точнее в питоне.

Встал вопрос реализации программы, но моим путем она будет писаться слишком долго..
Что имеем:
школьное расписание на 20(!) классов.
Что хотим:
Человек пишет "расписание для 8 Н"
программа выдает ему все расписание в виде:
Понедельник
1. Русский
2. ..
3..
Человек пишет "расписание для 10 К"
Понедельник
1. Алгебра..
и т.п.
И вроде можно прописать все через
if 'расписание 8К' or 'расписание 8 К' in ..: print(..), но!
во-первых, это больше ста строк кода из-за большого количества классов.

Во-вторых, еще хотелось бы реализовать следующее: Ученик 8 А класса пишет "расписание для 8А на следующий урок"

=> программа должна посмотреть время, посмотреть время начала следующего урока и день и написать: "следующий урок в понедельник - 4. Геометрия.."
и т.п.

Получается количество 'if`ов' увеличивается в сотни раз..

Как реализовать проще - для меня, к сожалению, вопрос( Совсем юный junior я в этом..
  • Вопрос задан
  • 1839 просмотров
Пригласить эксперта
Ответы на вопрос 2
@trofimovdev
Python
Используйте базу данных и выборку из нее.
Для таких целей подойдет и SQLite
Ответ написан
pash4paul
@pash4paul
#!/usr/bin/env python3

data = {
    '8А': {
        'Понедельник': [
            'Русский',
            'Математика',
            'Физ-ра'
        ],
        'Вторник': [
            'Литература',
            'Физика',
            'Химия'
        ]
    },
    '10К': {
        'Понедельник': [
            'Физика',
            'Химия'
        ],
        'Вторник': [
            'Литература',
            'Обж'
        ]
    }
}


def get_class_schedule(class_name):
    return data.get(class_name, 'Расписание не найдено')


def get_class_day_schedule(class_name, day_name):
    return data.get(class_name, {}).get(day_name, 'Расписание не найдено')


print(get_class_schedule('8А'))
print(get_class_schedule('10К'))
print(get_class_schedule('11К'))


print(get_class_day_schedule('8А', 'Понедельник'))
print(get_class_day_schedule('8А', 'Пятница'))


самый простой вариант без бд и панды.

функция get_class_day_next_lesson пишется аналогично (для это в структуре data надо хранить вместо названия предмета, связку {'time': '09:00', 'lesson': 'Литература'}.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы