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

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

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

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

РКН: clck.ru/3G6pBb
加入频道
Удаляем дубликаты из списка

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

Можно создать новый список, а в цикле устроить проверку на соответствие элемента новому списку.
Модули, библиотеки, 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.
Алгоритм бинарного поиска

Это обряд посвящения для всех начинающих программистов.

Всё просто — проект Python для двоичного поиска принимает отсортированный список (массив), затем постоянно сравнивает значение поиска с серединой массива.

В зависимости от того, является ли значение поиска меньше или больше среднего значения, список разделяется (стратегия "разделяй и властвуй"), чтобы уменьшить пространство поиска, которое зависит от заданного значения поиска. Это непрерывное разделение приводит к логарифмической временной сложности.
Автоматическая отправка писем на день рождения

Этот проект на Python использует стандартные модули smtplib, EmailMessage и datetime, в дополнение к pandas и openpyxl (у них должен быть установлен pip) для автоматической отправки электронных писем на день рождения.

Эта программа считывает данные с листа Excel, который содержит все данные ваших друзей.

Затем он отправляет им электронное письмо, если сегодня у них важный день, прежде чем сделать пометку в вашей электронной таблице о том, что они получили свое электронное письмо.
Прокачайте знания SQL и навыки работы с базами данных. Узнайте всё о профессии SQL-разработчика на бесплатном онлайн-интенсиве Skillbox. Подключайтесь к прямым эфирам с 27 февраля по 1 марта в 19:00 по московскому времени: 👉 https://clc.to/MdpETA

За 3 дня:

● научитесь работать с базами данных — и получите навык, необходимый каждому программисту;
● поймёте, как оптимизировать рутинные задачи при помощи SQL-запросов;
● прокачаете навыки работы с SQLiteStudio;
● узнаете, как стать более востребованным специалистом.

Спикер интенсива — специалист по анализу данных, сертифицированный SQL-разработчик от Microsoft Мкртич Пудеян.

🎉 Всем участникам подарим электронную книгу издательства МИФ «Человек + машина» Пола Доэрти и Джеймса Уилсона. Участвуйте, задавайте вопросы и получите сертификат на скидку 10 000 рублей на любой курс Skillbox.

Присоединяйтесь!
Решатель судоку

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

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

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

Тут можно видеть, что, дав срезам имена с помощью функции slice, и использовав эти имена при получении фрагментов строки, мы смогли избавиться от запутанных индексов.

Узнать подробности об объекте slice можно с помощью его атрибутов .start, .stop и .step.
Как ускорить код при помощи векторизации?

Лучшее решение — векторизация вычислений. Простыми словами: использование функций, которые поддерживают операцию над векторами.

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

Вообще, vectorize преображает функцию таким образом, что она целиком принимает весь вектор, а не ее отдельные элементы. Только знайте, что такой прием не всегда ускорит ее в значительной степени.
Время учить Python. 1 марта старт Подготовительного курса 🐍

✔️Упражняемся в браузерном тренажере — учимся понимать и писать код на Python.

✔️Погружаемся в реальный продакшен — создаем конвертер валют вместе с наставником.

✔️Размещаем изменения на GitHub — получаем основу для своего первого пет-проекта.

🆙 База по Python за 14 дней. На практике. За 990 рублей.
Создание таблиц в терминале Python

PrettyTable - это библиотека Python, с помощью которой у вас появится возможность представить данные в виде таблицы ASCII.

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

Модуль не имеет особых сложностей в структуризации, наименования столбцов задается по команде fieldsname, а строки - методом addrow.

Модуль prettytable также способен влиять на различные параметры таблиц, производить сортировку данных и работать с html, при том не ограничиваться во взаимодействии с таблицами csv и sql.
Сегодня будет день чистой практики.

Посмотрели туториал — повторили — запустили — profit!

1. Простейший web сервер на Python. Смотреть.
2. Как узнать, что скачивает человек, по его IP. Смотреть.
3. Голосовой ассистент - разбор кода. Смотреть.
4. Голосовой ассистент на Python - добавляем навыки. Смотреть.
5. Голосовой ассистент на Python. Смотреть.
6. Чат-бот на Python + Dialogflow. Смотреть.
Кажется, что программирование — это сложно. Нужно быть технарём, любить математику и знать английский. Но так ли это? На бесплатном интенсиве Skillbox вы узнаете, что на самом деле нужно уметь программисту, и напишете свой первый код.

А ещё на практике попробуете сразу несколько популярных IT-направлений:

✦ веб-разработку;
✦ мобильную разработку;
✦ Data Science;
✦ тестирование ПО;
✦ анализ данных.

Вы определите, так ли сложно программировать, как об этом говорят, и поймёте, какое IT-направление вам интереснее всего. Сделать первые шаги поможет разработчик с 17-летним опытом Даниил Пилипенко.

✌️Участие бесплатное, от вас не требуется знаний и опыта в IT.

Начинаем 2 марта в 19:00 (МСК). Не забудьте записаться по ссылке: https://clc.to/xaIhlA
Модуль getopt

Модуль getopt очень похож по работе с функцией getopt() для анализа параметров командной строки.

Модуль полезен при анализе аргументов командной строки, где мы хотим, чтобы пользователь также вводил некоторые параметры. И вот простой пример.
Класс импорта из другого файла

Мы можем импортировать скрипты и использовать определенные в них классы с помощью importlib. Допустим, у нас есть классы Person и Student, определенные в файле myclasses.py.
С плавающей запятой

Есть несколько функций, которые возвращают вещественное число или с плавающей точкой в случайном порядке.

Например, функция random() возвращает действительное число от 0 до 1 (исключая). Опять же, функции uniform (a, b) возвращают действительное число от a до b.

Кроме того, в модуле random также доступны некоторые случайные распределения. Мы также можем получить реальное число из этого распределения.