/2021-python

ННГАСУ практика по python

Primary LanguagePython

2021-python

ННГАСУ практика по python

Для работы необходим python 3.9 и выше. Библиотеки: numpy, matplotlib Редактор любой. Из неплохих: IDLE (родной, идёт вместе с установщиком), Visual Studio Code, notepad++, PyCharm, vim (для любителей сначала страдать, потом наслаждаться)

Работа с блокнотами онлайн, с возможностью подключение удалённых мощностей гугла (GPU, TPU): https://colab.research.google.com/

Таблица, где я буду отмечать сданные работы: https://docs.google.com/spreadsheets/d/1QCHpZehe26M6ybqkQNUqSTkRFvf2qCnnfMgNk9N4L4M/edit?usp=sharing

Доска с моими каракулями по алгоритмам: https://miro.com/app/board/o9J_lrvHqrI=/?invite_link_id=823446043784

Хорошая книга по python, очень простым языком и на понятных примерах: https://wombat.org.ua/AByteOfPython/AByteofPythonRussian-2.02.pdf

Сервер в Дискорд, где буду дублировать: https://discord.gg/MzPkCYf4Dh Мой контакт: nsmorozov@rf.unn.ru

В своей папке можете делать все что угодно, в чужие не залезать, в корневую тоже. Я буду ориентироваться на файлы, где в названии будет номер лабораторной.

[1] Работа со списками, словарями и генераторами (до 30.10)

  1. Создать словарь из пар ключ-значение, где ключи - это буквы своей фамилии, а значения - это порядковый номер буквы в алфавите, от которого взят:

    а) факториал (если вы родились весной);

    б) число Фиббоначи (осень);

    в) возведение в третью степень(зима);

    г) основание натурального логарифма ex (лето).

  2. Отсортировать его по ключу в алфавитном порядке и сохранить в файл.

  3. Отсортировать по значениям от меньшего к большему и сохранить в файл.

  4. Для задания 1(а-г) написать функцию-генератор.

  5. Создать список из значений словаря и разделить его на два: один из значений меньше среднего по списку, второй - среднее и выше.

[2] Алгоритмы поиска в глубину и поиска в ширину (до 28.11)

  1. Используйте файл лабиринта из своей папки, в котором точка входа на верхней границе, а точка выхода - на нижней.
  2. Ввести с клавиатуры точку (указать в каких пределах) расположения "сокровища", найти к нему путь (любой, поиск в глубину).
  3. От точки сокровища узнать длину кратчайшего пути (поиск в ширину) к выходу (вывести) и построить его.
  4. Сохранить в файл 'maze-for-me-done.txt', в котором точка сокровища будет указана как '*', а сам маршрут построен точками к сокровищу и запятыми от него к выходу.

[3] Декомпозиция задачи поиска выхода из лабиринта в ООП парадигме

  1. Какие классы будут нужны?
  • Maze: считывание из файла, хранение, информация о содержимом клетки по координатам, информация о координатах сокровища.

  • Pathfinder: информация о личности, двигаться в 8 направлениях: S, N, E, W, E, NW, NE, SW, SE, записывать в журнал (кортеж или список) свой маршрут в формате coord = [x, y], только положительные (проверять перед шагом)

  • Tracer: набор алгоритмов (в нашем случае - в глубину и ширину). Принимает сам лабиринт и искателя, ведет его по лабиринту. Искатель сам в это время записывает свой маршрут.

  • Trace_maker: умеет из лабиринта и искателя построить маршрут из точек и запятых и сохранить его в файл.