Python School
82.2K subscribers
2.41K photos
8 videos
573 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
加入频道
Аркадная игра Pong

Это действительно веселый и интересный проект, поскольку мы использовали модуль Python turtle для эмуляции классической аркадной игры Pong!

Мы использовали различные методы из модуля turtle для создания наших игровых компонентов и обнаружения столкновений мячей с веслами игрока.

Мы также определили диапазон привязок клавиш для настройки пользовательских элементов управления для левой и правой клавиш проигрывателя.
Треугольник Паскаля

Этот проект на Python выводит треугольник Паскаля, используя условные операторы и циклы. Он также использует математический модуль стандартной библиотеки и факториальную функцию для оценки уравнения "количество комбинаций", используемого для генерации значений в треугольнике.
Конвертер валют

Это одна из нескольких идей проекта Python, которые требуют от нас установки новой библиотеки Python, в данном случае модуля requests. Это не входит в стандартную библиотеку Python, поэтому используйте команду pip, указанную в исходном коде, чтобы установить ее в вашей системе.

С помощью модуля requests мы можем отправлять HTTP-запросы к API Fixer, что позволяет нам конвертировать одну валюту в другую. Вы, вероятно, заметите, что мы используем сторонний API, поэтому вам нужно зарегистрироваться, чтобы получить бесплатный ключ API здесь. Затем вы можете ввести свой ключ API в поле, указанное в исходном коде, и вы будете готовы к работе!

Этот проект позволяет вам получить больше практики с циклами и пользовательским вводом, но он расширяет это с помощью HTTP-запросов для извлечения данных API в формате JSON.
Преобразование чисел в слова

Эта идея проекта Python преобразует целое число, введенное пользователем, в эквивалентные слова.

Программа настроена на поддержку чисел, состоящих максимум из 12 цифр, но не стесняйтесь модифицировать программу для обработки больших чисел (подсказка: требуются условные операторы и циклы).
Генератор бросков кубиков

Являясь одним из наиболее подходящих проектов на Python для начинающих программистов, эта программа имитирует бросание одного или двух кубиков.

Как один из проектов Python easy, это довольно простая программа, которая использует модуль Python random для воспроизведения случайного характера бросания кубиков.

Обратите внимание, что вы можете изменить максимальное значение кубика на любое число, что позволяет имитировать многогранные кубики, часто используемые во многих настольных и ролевых играх.
Угадывание чисел

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

За каждое неверное предположение пользователь получает дополнительные подсказки, но ценой снижения их итогового балла.
Алгоритм сортировки слиянием

Сортировка слиянием - еще одна популярная проблема кодирования, с которой сталкиваются начинающие программисты, когда ищут, что можно сделать на Python.

Эта стратегия "разделяй и властвуй" использует разделение для разделения списка чисел на равные части, которые затем рекурсивно сортируются перед рекомбинацией для создания отсортированного списка.
Игра Hangman

Это приятная идея проекта на Python, имитирующая игру в угадывание слов Hangman. Мы использовали заранее определенный список слов для аспекта угадывания, но не стесняйтесь улучшать его, используя сторонний словарь API.

Этот проект на Python использует циклы, функции и форматирование строк для печати прогресса палача. Также мы можем экспериментировать с модулями стандартной библиотеки random, time и os.
%%timeit

Приведенная выше команда вычисляет время, необходимое среде IPython для выполнения программы Python. Давайте разберемся в следующей программе.
Работа с IP-адресами

Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль ipaddress.

Одним из вариантов его использование является генерирование списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, бесклассовая адресация).
Ограничение использования процессора и памяти

Для того чтобы ограничить использование программой процессора, мы сначала получаем значения нежёсткого (soft) и жёсткого (hard) лимитов для конкретного ресурса (RLIMIT_CPU).

Затем мы устанавливаем лимит, используя некое число секунд, задаваемое аргументом seconds, и ранее полученное значение жёсткого лимита.

После этого мы регистрируем обработчик signal, который, при превышении выделенного программе процессорного времени, инициирует процедуру выхода.

В случае с памятью, мы, опять же, получаем значения для нежёсткого и жёсткого лимитов, после чего устанавливаем ограничение с помощью метода setrlimit, которому передаём размер ограничения (size) и ранее полученное значение жёсткого лимита.
Удаление по срезу

Так же мы можем удалять элементы последовательности по срезу с учётом того, что она поддерживает удаление элементов (изменяема))). Приведу пример с рантайм классом SupportsDeletion.
Функции, поддерживающие только именованные аргументы (kwargs)

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

Такой простой приём улучшит понятность кода, помните об этом.

Как видите, наша задача легко решается при помощи использования аргумента * перед списком именованных аргументов.

Можно использовать и позиционные аргументы — в том случае, если поместить их до аргумента *.
Удаляем дубликаты из списка

Допустим, в списке имеются повторяющиеся элементы, а вам нужны только уникальные значения. Что делать?

Можно создать новый список, а в цикле устроить проверку на соответствие элемента новому списку.
Модули, библиотеки, import

Язык Python хорош тем, что в него встроено большое количество модулей и библиотек по умолчанию. Более того, их можно дополнительно установить из официального репозитория при помощи команды «pip install название_модуля» в терминале проекта.

Модули (один файл) и библиотеки (несколько файлов с обязательным наличием документа __init__.py) расширяют возможности программистов и упрощают работу. Не нужно создавать велосипед заново, так как его уже кто-то сделал ранее для вас. Нужно лишь им воспользоваться, чтобы добраться из точки А в точку Б.
Конвертер валют

Конвертер работает с помощью модуля requests. Он не входит в стандартную библиотеку Python, поэтому используйте команду pip, указанную в исходном коде, чтобы установить ее в вашей системе.

С помощью модуля requests мы можем отправлять HTTP-запросы к API Fixer, что позволяет нам конвертировать одну валюту в другую.

Мы используем сторонний API, поэтому надо зарегистрироваться, чтобы получить бесплатный ключ API. Затем вводим свой ключ API в поле, указанное в исходном коде, и всё готово.
Улучшаем код с Mypy

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

Одна и та же переменная может быть как строкой, так и целым числом или иным типом данных в зависимости от последнего присвоенного значения.

Это ускоряет процесс написания кода, когда разработчику не нужно каждый раз вручную назначать тип данных для переменных.
Перестановка

Если вам нужна последовательность в другом порядке, то подойдет такой вариант. Этот метод полностью переворачивает последовательность.
Преобразование текста в речь

Этот проект на Python использует ряд новых библиотек для преобразования существующей статьи в воспроизводимый mp3-файл. Вам нужно будет установить nltk (natural language toolkit), newspaper3k и gtts.

Программа простая, поскольку мы просто передаем URL-адрес статьи для преобразования, а затем позволяем функции обрабатывать преобразование текста в речь с помощью наших недавно установленных модулей.
Чат-бот

Этот проект на Python использует модуль chatterbot для обучения автоматического чат-бота отвечать на любой ваш вопрос. Да-да, мы делаем тот самый ИИ.

А если вы хотите сделать чат-бота с еще большими возможностями — изучите документацию ChatterBot.