# data[].attributes.body
Видео с занятия (часть 1)
Видео с занятия (часть 2)

Проект с занятия

Задание:
Изменить наш сайт Holiday таким образом, чтобы к каждому празднику помимо названия и картинки еще выдавалось некое пожелание.

# data[].attributes.body
Видео с занятия (часть 1)
Видео с занятия (часть 2)
Видео с занятия (часть 3)

Обработка запросов
Определение маршрутов

Проект с занятия

Задание:
Изменить наш сайт Valentine Day таким образом, чтобы при посещении сайта он мог нам говорить какой сегодня день недели.
datetime.datetime.today().weekday()

# data[].attributes.body
Видео с занятия (часть 1)
Видео с занятия (часть 2)
Видео с занятия (часть 3)

Создание первого приложения

PyCharm(professional)

Проект с занятия

Задание:
Создайте свой проєкт Django с одним приложением и реализуйте в нем возможность посещения нескольких маршрутов.

# data[].attributes.body
Видео с занятия (часть 1)
Видео с занятия (часть 2)
Видео с занятия (часть 3)

Блочная верстка 1
Блочная верстка 2
Создание пройстейшего макета

Пример сайта с занятия

Задание:
Адаптировать сайт под нормальную цветовую гамму.
КОНКУРС)

# data[].attributes.body
Видео с занятия (часть 1)
Видео с занятия (часть 2)

Презентация HTML - CSS
Презентация HTML - рисунки
Презентация HTML - таблицы

Таблицы
Введение в CSS

Пример сайта с занятия
Пример Google с занятия

Задание:
Седелать на страничке Google ссылку для перехода на страничку поиска картинок. Старичку для поиска картинок организовать по тому же принципу.
Адрес страницы для отправки запроса поиска картинок: https://www.google.com.ua/imghp

# data[].attributes.body
Видео с занятия (часть 1)
Видео с занятия (часть 2)

Презентация HTML - 1
Презентация HTML - 2

Создание документа HTML5
Элемент head
Заголовки
Форматирование текста
Работа с изображениями
Ссылки

Скачать Visual Code
Скачать Notepad++

Пример разработки с занятия

Задание:
Дополнить страничку page2.html с занятия материалами на свое усмотрение.

# data[].attributes.headline
Telegram-боты (Aiogram часть 7) бот в группах телеграмм (планировщик событий)

# data[].attributes.subject
Telegram-боты (Aiogram часть 7) бот в группах телеграмм (планировщик событий)

# data[].attributes.body
Видео с занятия (часть 1)
Видео с занятия (часть 2)
Видео с занятия (часть 3)

Скачать проект бота с занятия

# data[].attributes.headline
Telegram-боты (Aiogram часть 6) бот в группах и каналах телеграмм

# data[].attributes.subject
Telegram-боты (Aiogram часть 6) бот в группах и каналах телеграмм

# data[].attributes.body
Видео с занятия (часть 1)
Видео с занятия (часть 2)

Скачать проект бота с занятия

# data[].attributes.headline
Telegram-боты (Aiogram часть 5), библиотека fuzzywuzzy, болталка в боте

# data[].attributes.subject
Telegram-боты (Aiogram часть 5), библиотека fuzzywuzzy, болталка в боте

# data[].attributes.body
Видео с занятия (часть 1)
Видео с занятия (часть 2)

Пример использования частичного сравнения строк (модуль fuzzywuzzy)

Скачать проект бота с занятия

Наш файл с вопросами и ответами
Большой файл с вопросами и ответами (отсюда можно выбрать материал)

Задание:
Придумайте и реализуйте как остановить процесс болтания с ботом

# data[].attributes.headline
Telegram-боты (Aiogram часть 4) состояния пользователя, запросы в Википедию

# data[].attributes.subject
Telegram-боты (Aiogram часть 4) состояния пользователя, запросы в Википедию

# data[].attributes.body
Видео ZOOM (часть 1)
Видео ZOOM (часть 2)
Видео ZOOM (часть 3)
Видео ZOOM (часть 4)

Пример бота с занятия

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

# data[].attributes.headline
Telegram-боты (Aiogram часть 3) Меню+парсинг

# data[].attributes.subject
Telegram-боты (Aiogram часть 3) Меню+парсинг

# data[].attributes.body
Скачать проект с занятия

Задание:
1. Дописать получение курса для Евро и Рубля
2. Вытянуть полезные данные из списка при нажатии кнопки "Погода"

Токен для погоды можно использовать мой, а можно и получить свой! Сайт:
https://openweathermap.org/

Бесплатные данные от ПриватБАнка:
https://api.privatbank.ua/#p24/exchange

# data[].attributes.body
Видео занятия (часть 1)
Видео занятия (часть 2)

Скачать проект бота с занятия

Задание:
Экспериментируем с разными видами кнопочек.
Можно попробовать сделать сообщение с перечнем товаров (Inline кнопки), при выборе соответствующего товара выводить его фото и цену. Ну или пересылать на соответствующий сайт.

# data[].attributes.body
Скачать PyCharm

Видео занятия (часть 1)
Видео занятия (часть 2)
Видео занятия (часть 3)

Скачать проект бота с занятия

Задание:
Создать собственный проект бота в PyCharm
Реализовать обработчики команд для отправки основных типов сообщений в Telegram.

# data[].attributes.body
Наш бот с сотояниями:
Пример бота с занятия

Задание:
Помимо сохранения имени и возраста реализовать сохранение и фотки.
Напоминаю, что в перехватчике, который ждет фотку можно из сообщения отправки фотки вытянуть ее id:
message.photo[0].file_id
и сохранить его тоже в файле.
А потом в перехватчике команды start вывести фото по этому id после вывода имени и возраста:
bot.send_photo(message.chat.id, сюда подставить сохраненный в словаре id фотки)

# data[].attributes.body
Видео ZOOM (часть 1)
Видео ZOOM (часть 2)

Пример бота с занятия

# data[].attributes.body
Материал для повторения и изучения:
Словари
Файлы shelve

Пример бота с занятия (со встроенной статистикой)

Задание:
Прикрутить статистику к отдельной команде главного меню (пример на рисунке). Статистику, естественно, храним в файле-словаре модуля shelve.

# data[].attributes.body
Пример бота "Угадай песню" с комментариями и всеми необходимыми файлами

Задание:
Попробуйте сделать аналогичного бота на угадывание людей на картинках

# data[].attributes.headline
Telegram-боты (часть3) бот с Базой данных

# data[].attributes.subject
Telegram-боты (часть3) бот с Базой данных

# data[].attributes.body
Видео ZOOM (часть 1)
Видео ZOOM (часть 2)

Программа для создания БД DBBrowser

Пример бота с занятия (+ файл БД, рисунок и звук)

Структуру базы данных с примером содержимого привожу в виде скрина.

В качестве задания попробуйте прилепить к своему боту базу данных из которой он будет что-то давать пользователю по запросу.

# data[].attributes.attachment_link.title
Структура БД к боту 3

# data[].attributes.body
Пример бота с занятия с комментариями

Задание:
Поиграйтесь со своим собственным ботом.
Заставьте его собирать какую либо информацию от пользователя.

# data[].attributes.headline
Telegram-боты (часть1) +повторение

# data[].attributes.subject
Telegram-боты (часть1) +повторение

# data[].attributes.body
Повторение:
Программа генерации паролей с сохранением в текстовом файле

Боты:
1. Установите библиотеку telebot командой из командной строки.
pip install pytelegrambotapi
Если не реагирует на pip то переустанавливайте python с галочкой как на фото.

2. Найдите @BotFather  и зарегестрируйте в нем бота командой /newbot. Имя бота обязательно должно содержать слово bot

3. Скопируйте полученный токен в свою программу.

Пример бота с занятия

Задания:
1. Усовершенствуйте программу генерации паролей пунктом "Удалить пароль" (удаление пароля по номеру)
2. Напишите игру "Камень, ножницы, бумага". Играет человек с компьютером.
3. Зарегистрируйте своего бота. Научите его отвечать на какое-нибудь слово пользователя.

# data[].attributes.body
Информация по танчикам
Исходный код игры с комментариями

# data[].attributes.headline
Модуль graph (змейка финал)

# data[].attributes.subject
Модуль graph (змейка финал)

# data[].attributes.body
Окончательная версия игры "Змейка"

Задание:
Посмотреть на элементы создания игры с танками.
Ну хотя бы на процесс прорисовки самого танчика и поворота пушки.
Информация по танчикам

# data[].attributes.headline
Модуль graph (змейка)

# data[].attributes.subject
Модуль graph (змейка)

# data[].attributes.body
Информация по созданию игры

Сама игра
-----------------------------------------
Задание:
Реализовать появление кубика, который змейка будет пытаться съесть)
Кубик появляться будет в случайном месте.
В идеале попробовать реализовать соприкосновение змейки и кубика. Если она коснулась, то кубик перемещается в другое случайное место.

# data[].attributes.body
Презентация "Графика часть 1"
Программы с занятия

Сам модуль graph
Модуль скачать и положить в папку установленного Питона по адресу:
c:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\

Документация по модулю

# data[].attributes.headline
Классы на примере игры

# data[].attributes.subject
Классы на примере игры

# data[].attributes.body
Видеозапись занятия (часть 1)
Видеозапись занятия (часть 2)

Исходный код игры (реализация мяча)

Исходный код игры (полная игра)

Задание:
Попробуйте разработать класс для рисования платформы внизу холста
Просто свойства платформы и метод вывода ее на экран

# data[].attributes.headline
Классы (инкапсуляция)

# data[].attributes.subject
Классы (инкапсуляция)

# data[].attributes.body
Инкапсуляция (почитать до аннотаций)

Программа "Модель пульта"

Задание:
1. Дополнить программу возможностью пульта хранить и переключать текущую громкость (громкость + и громкость -)
2. Добавить кнопку "mute" (отключить/включить громкость)

# data[].attributes.headline
Классы и объекты (часть 2)

# data[].attributes.subject
Классы и объекты (часть 2)

# data[].attributes.body
Пример программы построения классов автомобилей

Классы и объекты

Задание:
В программе про авто реализовать в классе метод, который позволяет для данного авто определять стоимость проезда (исходными данными для метода будут цена бензина и расстояние)

# data[].attributes.headline
Классы и объекты 

# data[].attributes.subject
Классы и объекты 

# data[].attributes.body
Задачи на повторение списков

Классы и объекты

Задание:
1. Почитать про классы и объекты
2. Программки:

# data[].attributes.headline
Проект "Крестики-Нолики" (финал)

# data[].attributes.subject
Проект "Крестики-Нолики" (финал)

# data[].attributes.body
Финальный код программы с разными режимами

Видеозапись занятия (часть 1)
Извините, вторую часть забыл записать

Задание:
Подправить дизайн на свой вкус!
Дополнить стартовое окно полями для ввода имен. Если выбрана игра с компом, то подписи для полей ввода Игрок1 и Компьютер. Если выбрана игра с человеком, то Игрок1  и Игрок2.
После чье-либо победы выводить куда нибудь имя победившего.

# data[].attributes.headline
Проект "Крестики-Нолики"

# data[].attributes.subject
Проект "Крестики-Нолики"

# data[].attributes.body
Исходный код "Игра друг с другом"

Видеозапись занятия (часть 1)
Видеозапись занятия (часть 2)

Исходный код "Игра с компьютером"
------------------------------------------
Даем компьютеру интеллект!
Видеозапись занятия (часть 1)
Видеозапись занятия (часть 2)

Исходный код "Игра с компьютером (комп уже с интеллектом)"

Задание 1:
Расширить игру следующими возможностями (рисунок)

Задание 2:
В программу уже добавлены 3 переключателя для уровня сложности. Модернизировать функцию comp_hod() так чтобы они заработали!
Легкий - ходим случайно
Средний - ходим случайно + умеет доставлять 3-й нолик в ряду
Сложный - ходим случайно + умеет доставлять 3-й нолик в ряду + умеет сбивать ряд уже из 2-х крестиков

# data[].attributes.body
Checkbutton
Radiobutton

Примеры программ c занятия

Задание:
1. Написать на свое усмотрение конвертер температуры, расстояния, массы. Реализовать возможность выбора из нескольких исходных единиц (мм, см, м, км) в несколько результирующих единиц.

2.  Напишите программу, в которой имеется несколько объединенных в группу радиокнопок, индикатор которых выключен (indicatoron=0). Если какая-нибудь кнопка включается, то в метке должна отображаться соответствующая ей информация. Обычных кнопок в окне быть не должно. ( у Radiobutton есть особое свойство indicatoron. По-умолчанию он равен единице, в этом случае радиокнопка выглядит как нормальная радиокнопка. Однако если присвоить этой опции ноль, то виджет Radiobutton становится похожим на обычную кнопку по внешнему виду. Но не по смыслу. )

# data[].attributes.body
Модуль datetime
Текстовая метка Label
Поле ввода Entry

Примеры программ c занятия

Задание:
Напишите программу решения квадратного уравнения с визуальным интерфейсом.
Пример:

# data[].attributes.body
Создание окна приложения
Создание кнопки
Позиционирование элементов
1. Рисование в Tkinter
2. Рисование в Tkinter

Примеры программ c занятия
Задания:
В статьях "Рисование в Tkinter" есть задания. Можно выполнить их. Можно прикрутить туда рисование картин по частям. Запрограммировать кнопки на отдельные элементы.

1. Напишите программу, которая с помощью tkinter заполняет экран треугольниками. Затем модифицируйте код, чтобы треугольники были раскрашены (заполнены) различными цветами.

2. С помощью tkinter отобразите на экране свою фотографию. Не забывайте, что изображение должно быть в формате GIF! А теперь сделайте так, чтобы фотография перемещалась по экрану.

+ Займитесь самостоятельным творчеством с использованием этого модуля! Творчество - наше все!!!

# data[].attributes.body
Примеры написания конкурсных заданий

Задания для самостоятельного написания
Шифр Цезаря (для Петрова Никиты)

# data[].attributes.body
Словари
Видео "Словари"
Пример программы с занятия
Задание:
Написать программу тарнслитерации строки, введенной пользователем.
Пример сервиса по ссылке.

# data[].attributes.attachment_link.readable_text
На письмове прохання заявника внесення прізвища та імені особи, на ім'я якої оформлюється паспорт для виїзду за кордон, латинськими літерами може бути виконано відповідно до його написання у раніше виданих документах, що посвідчують особу та підтверджують громадянство України, оформлених компетентними органами України, або документах, що підтверджують факт народження, зміни імені (у тому числі у разі укладення або розірвання шлюбу), виданих компетентними органами іноземної держави та легалізованих в установленому порядку. Написання прізвища особи у паспорті для виїзду за кордон може бути виконано відповідно до написання прізвища її дитини/батьків (або одного з них)/одного з подружжя у раніше виданих їм паспортах для виїзду за кордон (у тому числі в паспортах для виїзду за кордон, виданих іноземними державами, якщо дитина/батьки/одне з подружжя є іноземцями).

Транслітерація здійснюється шляхом відтворення кожної літери латиницею згідно з транслітераційною таблицею, яка складається з транслітераційних пар, де пара - це кирилична літера і відповідна до неї латинична літера, що мають однакову чи подібну вимову.

Офіційна транслітерація українського алфавіту латиницею затверджена постановою Кабінету Міністрів України №55 від 27 січня 2010 р.

Буквосполучення "зг" відтворюється латиницею як "zgh" (наприклад, Згорани - Zghorany, Розгон - Rozghon) на відміну від "zh" - відповідника української літери "ж".

Не відтворюють: м'який знак і апостроф.

# data[].attributes.attachment_link.title
Транслітерація - Паспортний сервіс

# data[].attributes.attachment_link.description
На письмове прохання заявника внесення прізвища та імені особи, на ім'я якої оформлюється паспорт для виїзду за кордон, латинськими літерами може бути виконано відповідно до його написання у раніше виданих документах, що посвідчують особу та підтверджують громадянство України, оформлених компетентними органами України, або документах, що підтверджують факт народження, зміни імені (у тому числі у разі укладення або розірвання шлюбу), виданих компетентними органами іноземної держави та легалізованих в установленому порядку.

# data[].attributes.body
Информация по модулю
Примеры программ с занятия

Задания:
Изобразить с помощью модуля turtle следующие рисунки:

# data[].attributes.body
Пример программ программирования текстовых файлов
-------------------------------------
Реализовать самостоятельно пункт №4 меню программы обратобтки файла "dogs.txt"
-------------------------------------
Примеры текстовых файлов

# data[].attributes.headline
Задания к занятию 7

# data[].attributes.subject
Задания к занятию 7

# data[].attributes.body
1. Подсчитать количество слов в каждой строке текстового файла.
2. В текстовом файле определить строку с максимальным количеством слов.

# data[].attributes.body
Открытие и закрытие файлов
Текстовые файлы
Видео "Работа с файлами"
Видео "Менджеры With ... as"
Примеры программ на текстовые файлы

# data[].attributes.headline
Задания к занятию 6

# data[].attributes.subject
Задания к занятию 6

# data[].attributes.body
1. Найти в строке самое длинное слово.
(пример реализации)
2. Дана строка. Подсчитать сколько в ней чисел.
3. Определить есть ли в строке одинаковіе слова.

# data[].attributes.body
Работа со строками
Основные методы строк
Форматирование при выводе
Подсчет слов
Видео "Строки"
Видео "Индексы строк"
Видео "Методы строк"

Пример функций работы со строками
Пример подсчета количества слов в строке
Пример программы проверки слов на ошибки (1 вариант)
Пример программы проверки слов на ошибки (2 вариант)

# data[].attributes.headline
Задания к занятию 5

# data[].attributes.subject
Задания к занятию 5

# data[].attributes.body
1. Написать программу преобразования двоичного числа в десятичное. Преобразование реализовать в виде функции.
2. Заполнить список любыми числами (можно рандомно).  Найдите сумму и произведение элементов списка. Результаты вывести на экран
Посмотреть решение задания 2
3.  Определите, есть ли в списке повторяющиеся элементы, если да, то вывести на экран это значение. (похожа на ту программу, которую мы писали в конце занятия)
4.  Поменять местами самый большой и самый маленький элементы списка.
Посмотреть решение задания 4

Пример перевода из двоичной в десятичную:

# data[].attributes.body
Функции
Область видимости переменных
Списки
Видео "Списки"
Примеры программ на функции
Пример программы работы со списками

# data[].attributes.headline
Задания к занятию 4

# data[].attributes.subject
Задания к занятию 4

# data[].attributes.body
1. В введенной строке подсчитать общее количество знаков препинания. К ним относятся: точка, запятая, тире.

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

3. Решить головоломку:

# data[].attributes.body
Операции со строками
Функции
Видео "Функции"
Примеры программ к занятию 4
Головоломка с занятия:

# data[].attributes.body
Примеры программ с циклами

# data[].attributes.headline
Задания к занятию №2

# data[].attributes.subject
Задания к занятию №2

# data[].attributes.body
1.  Вычислить факториал введенного числа.
Факториалом числа называют произведение всех натуральных чисел до этого числа включительно. Например, факториал числа 4 равен 1*2*3*4 = 24. Записывается факториал так: 4! = 24.

2.  Вывести на экран ряд натуральных чисел от минимума до максимума с шагом. Например, если минимум 10, максимум 35, шаг 5, то вывод должен быть таким: 10 15 20 25 30 35. Минимум, максимум и шаг указываются пользователем (считываются с клавиатуры).

3. Найдите все пятизначные числа, которые при делении на 133 дают в остатке 125, а при делении на 134 дают в остатке 111.

# data[].attributes.headline
Материалы к занятию №2

# data[].attributes.subject
Материалы к занятию №2

# data[].attributes.body
Презентация "Циклы"
Циклы
Видео "Циклы"

# data[].attributes.headline
Задания к занятию №1

# data[].attributes.subject
Задания к занятию №1

# data[].attributes.body
1. Вычислить площадь и периметр
-  треугольника по данным трем сторонам,
-  прямоугольника по данным ширине и высоте,
-  круга по заданному радиусу.
Длины сторон и радиус вводятся пользователем.

2. Пользователь вводит два числа. Одно  присваивается одной переменной, а второе - другой. Необходимо поменять значения переменных так, чтобы значение первой оказалось во второй, а второй - в первой.

3. Вводятся три целых числа. Определить какое из них наибольшее.

4. Перевести число, введенное пользователем, в байты или килобайты в зависимости от его выбора.

# data[].attributes.headline
Материалы к занятию №1

# data[].attributes.subject
Материалы к занятию №1

# data[].attributes.body
Презентация "Пройстейшие программы"
Презентация "Ветвления"
Введение в написание программ
Переменные и типы данных
Операции с числами
Условные выражения
Условная конструкция if
Видео "Первая программа"
Видео "Переменные"
Видео "Условные операторы"