Цель заброшена
Автор не отписывался в цели 3 года 4 месяца 13 дней
#tceh Разработчик на Python
Критерий завершения
я готова работать на позиции junior python developer
Личные ресурсы
время, интернет, мозги
Экологичность цели
пора менять жизнь, давно пора
-
Знакомство
-
HTML & CSS
-
Введение
Задача: реализовать игру в загадки
Требования:
Программа выводить в консоль текст загадки и ждать ввода пользователя
Программа после ввода пользователя ответа должна вывести в консоль результат: правильный ли ответ дал пользователь
Загадок должно быть 10, тематика вопросов должна быть по первому занятию
Дополнительные требования (со звездочкой или сложные, необязательно для выполнения):
Программа должна в конце игры сказать, сколько ответов дал пользователь: сколько из них было верных
Программа должна не учитывать регистр ответа: "Python" и "python" оба должны быть правильным ответом на вопрос "Какой язык мы учим?"
Материалы для прочтения:
Как хранятся числа в памяти:
http://www.5byte.ru/11/0008.php
Что такое Unicode: https://habrahabr.ru/post/135913/
Таблица истинности из булевой алгебры:
(так же необходимо прочитать про (Дизъюнкция и Конъюнкция)
Что нельзя использовать как имя переменной: https://pythonworld.ru/osnovy/klyuchevye-slova-modul-keyword.html
Как задавать вопросы: http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem
Разница между for и while: http://stackoverflow.com/questions/920645/when-to-use-while-or-the-for-in-python
Дополнительные (углубленные) материалы:
http://stackoverflow.com/questions/496321/utf-8-utf-16-and-utf-32
https://stackoverflow.com/questions/1331471/in-memory-size-of-a-python-structure
https://pythoninternal.wordpress.com/2014/08/11/everythings-an-object/
-
сама лекция
-
Напишите программу, которая считает площадь прямоугольника, спрашивая у пользователя длину двух сторон
-
Напишите программу, которая спрашивает у пользователя два числа и знак: "+" или "-". В зависимости от знака выводит их с
-
Напишите программу, которая находит все простые числа между 0 и пользовательским числом
-
Напишите программу, которая выводит все кратные 5 числа между двумя пользовательскими числами
-
Задача: реализовать игру в загадки
-
-
Продвинутые концепции функций, Git, Практика
-
сама лекция
-
факультатив
-
Игра "угадай число" (проще)
-
Игра "виселица" (средне)
-
Игра "крестики-нолики" (сложнее)
-
-
Обработка ошибок, Функции, Самостоятельная работа
**Материалы:
1. Что такое ошибка? https://docs.python.org/3.6/tutorial/errors.html
2. Какие бывают ошибки? https://docs.python.org/3/library/exceptions.html
3. В чем разница между except и except Exception?
4. Что такое функция? https://www.tutorialspoint.com/python/python_functions.htm
5. Что значит - вызвать функцию? https://stackoverflow.com/questions/19130958/what-does-it-mean-to-call-a-function-in-python
6. Что такое *args и **kwargs: https://lancelote.gitbooks.io/intermediate-python/content/book/args_and_kwargs.html
*Сложный вариант:
Задача: необходимо реализовать игру в пятнашки.
Задача про пятнашки действительно непростая, но очень интересная.
**Требования:
1. Игра пятнашки: https://ru.wikipedia.org/wiki/%D0%98%D0%B3%D1%80%D0%B0_%D0%B2_15
2. Поле состоит из клеток от 1 до 15 и пустой клетки
3. Управление ведется кнопками "wasd", двигается пустая клетка
4. В начале игры поле перемешено в случайном порядке
5. Пользователь не должен соверашть непозволительные шаги. Например, из-за ограничений рамки поля. Ему должно показываться сообщение о том, что он пытается совершить непозволительный ход
6. Пользователю дожно быть видно поле. Оно представляет собой матрицу 4 на 4. Пустую клекту обозначаем как x. При каждом действии пользователя поле рисуется еще раз - ниже в консоли
7. Игра заканчивается, когда все клетки стоят по-порядку, а пустая клетка - последняя. В конце игры пользователю показывается, сколько ходов он совершил
8. Выход из игры происходит при помощи KeyboardInterrupt. Исключение должно быть обработано. Пользователю должна быть выведена фраза "shutting down"
**Дополнительно:
1. Обратите внимание, что не любое поле оставляет возможность закончить игру,
необходимо придумать корректный алгоритм генерации взамен простого перемешивания
2. Тесты, которые приложены к работе должны проходить
3. Вам необходимо посмотреть, как работают самописные тесты, которые приложены к работе
**Прохождение тестов:
1. Создаем папку game_code
2. В ней создаем файл game.py
3. Рядом должен лежать мой файл tests.py
4. Вызываем python3 tests.py
-
сама лекция
-
Пользователь вводит число, если оно четное - выбрасываем исключение ValueError, если оно меньше 0 - TypeError, если оно больше 10 - IndexErr
-
Создайте список произвольной длины. Пользователь должен ввести индекс объекта, который хочет посмотреть. Если все хорошо - пишите объект в к
-
Написать функцию, которая принимает на вход два аргумента. Если аргументы больше нуля, возвращаем их сумму. Если оба меньше - разность. Если
-
Написать функцию, которая принимает 3 аргумента - числа, найти среди них два максимальных, вывести в консоль
-
Написать функцию, которая принимает два аргумента. Первый - список чисел, второй - булевый флаг. Если флаг действителен - возвращаем новый с
-
Написать функцию, которая принимает любое количество аргументов чисел. Среди них она находит максимальное и минимальное. И возвращает оба
-
Написать функцию, которая принимает два аргумента: строка и булевый флаг case по-умолчанию равный True. Если флаг действителен: возвращаем н
-
Написать функцию, которая принимает любое количество позиционных аргументов - строк и один парматер по-умолчанию glue, который равен ':
-
Задача - сложный вариант
-
-
Операции, Работа с командной строкой, Сложные типы данных, Функции
Дополнительное задание:
Для тех, кто решил игру загадки без использования циклов и словарей - прошу ради интереса сделать со словарем и циклом, посмотрите, насколько удобнее и короче стал ваш код.
Материалы:
tuple vs list:
http://stackoverflow.com/questions/1708510/python-list-vs-tuple-when-to-use-each
http://stackoverflow.com/questions/626759/whats-the-difference-between-lists-and-tuples
http://nedbatchelder.com/blog/201608/lists_vs_tuples.html
dict: https://pythonworld.ru/tipy-dannyx-v-python/slovari-dict-funkcii-i-metody-slovarej.html
Что такое enumerate?
http://pythonz.net/references/named/enumerate/
Как перевернуть коллекцию?
Как сортировать?
https://wiki.python.org/moin/HowTo/Sorting
Как соединять и разбивать строки?
http://www.diveintopython.net/native_data_types/joining_lists.html
Является ли dict упорядоченным?
Продвинутые материалы:
Какие еще есть коллекции?
https://docs.python.org/2/library/collections.html
Что такое хеш-таблица?
https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0
Как python определяет термин "hashable"?
https://docs.python.org/3/glossary.html -> hashable
Как считается hash в python?
https://stackoverflow.com/questions/14535730/what-do-you-mean-by-hashable-in-python
Могут ли быть коллизии в хеш-таблицах?
https://en.wikipedia.org/wiki/Hash_table#Collision_resolution
Видео:
Как устроен современный dict?
-
сама лекция
-
Создать лист из 6 любых чисел. Отсортировать его по возрастанию
-
Создать словарь из 5 пар: int -> str, например {6: '6'}, вывести его в консоль попарно
-
Создать tuple из 10 любых дробных чисел, найти максимальное и минимальное значение в нем
-
Создать лист из 3 слов: ['Earth', 'Russia', 'Moscow'], соединить все слова в единую строку, чтобы получилось:
-
Взять строку '/bin:/usr/bin:/usr/local/bin' и разбить ее в список по символу ':'
-
Пройти по всем числам от 1 до 100, написать в консоль, какие из них делятся на 7, а какие - нет
-
Создать матрицу любых чисел 3 на 4, сначала вывести все строки, потом все столбцы
-
Создать список любых объектов, в цикле напечатать в консоль: объект и его индекс
-
Создать список с тремя значениями 'to-delete' и несколькими любыми другими, удалить из него все значения 'to-delete'
-
Пройти по всем числам от 1 до 10 в обратную сторону (то есть: от 10 до 1), напечатать их в консоль
-
Дополнительное задание: Для тех, кто решил игру загадки без использования циклов и словарей - прошу ради интереса сделать со словарем и цикл
-
-
Объектно-ориентированное программирование
ClassWork
*ЗАДАЧА 1:
1. Создать класс корзина, у которого можно выставить разную вместительность для разных объектов.
В объекты класса корзина можно помещать разные объекты;
2. Вам нужно создать класс пакет, в который тоже можно помещать предметы. У него тоже есть вместимость;
3. Создать любой класс, объекты которого можно было бы мощешать в корзину и пакет;
4. Если вместимости недостаточно, сказать, что объект поместить нельзя.
*ЗАДАЧА 2:
Пользователь вводит список чисел через пробел. если ввел:
1 число, строим квадрат
2 числа, строим прямоугольник
3 числа, треугольник
4 числа, многоугольник
вычисляем периметр и площадь. выводим в консоль.
можно сделать проверки на "возможность" построить данную фигуру с такими сторонами.
-
сама лекция
-
Реализовать класс Person, у которого должно быть два публичных поля: age и name. Также у него должен быть следующий набор методов: know(per
-
Есть класс, который выводит информацию в консоль: Printer, у него есть метод: log(*values). Написать класс FormattedPrinter, который выводит
-
Написать класс Animal и Human,сделать так, чтобы некоторые животные были опасны для человека (хищники, ядовитые). Другие - нет. За что будет
-
ClassWork Задача 1
-
ClassWork Задача 2
-
-
Классы и объекты
TODO
+1. добавить ToReadItem с аттрибутами Заголовок и URL
+2. Добавить команду done
+3. Любой элемент списка с done=True в списке отмечается '+', c False '-'
+4. Добавить команду undone
-
TODO #1
-
TODO #2
-
TODO #3
-
TODO #4
-
-
Практика, Синтаксический сахар, Принципы проектирования
-
Генераторы
-
Json, Интернет, Регулярные выражения, Практика
-
Flask
-
Менеджеры контекста, Паттерны проектирования, Конфигурация Flask, Устройство request
-
SQL
-
Flask, ORM
-
Flask, Шаблоны Jinja2
-
JavaScript часть 1
-
JavaScript часть 2
-
Django часть 1
-
Django часть 2
-
Django часть 3
-
Django часть 4
-
Django часть 5
-
Celery
-
PyTest
-
Деплой приложении
-
Подведение итогов
-
Висяки
-
пятнашки
-
- 3478
- 05 января 2019, 15:13
Не пропустите новые записи!
Подпишитесь на цель и следите за ее достижением