fa
Feedback
Python академия

Python академия

رفتن به کانال در Telegram

Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter

نمایش بیشتر
7 286
مشترکین
-124 ساعت
-57 روز
-4430 روز
آرشیو پست ها
Модуль zipfile Как говорилось ранее с zip может работать модуль shutil, но zipfile более многофункционален. С другой стороны
Модуль zipfile Как говорилось ранее с zip может работать модуль shutil, но zipfile более многофункционален. С другой стороны он не так универсален и работает только с зипами. За все надо платить, не существует идеального способа для всего. Для начала надо из zipfile импортировать ZipFile. И открыть файл ZipFile(file). printdir() - вывод списка содержимого текстом для печати. namelist() - вывод списка фалов списком. open() - открыть файл внутри архива, далее работа проходит аналогично работе фалов. Для практики на картинке показана программа выводящая красивый вложенный список файлов находящихся в архиве. Больше возможностей можно узнать через help() или документацию. Подписывайтесь на канал 👉@pythonofff

Модуль shutil Очень смешное название, но библиотека является мощным инструментом для обработки файлов. В прошлом посте говори
Модуль shutil Очень смешное название, но библиотека является мощным инструментом для обработки файлов. В прошлом посте говорилось о модуль os. Надо учитывать, что многие задачи решить через него можно, но придется постараться. Программисты комбинируют os и shutil для достижения наиболее красивого и эффективного кода. shutil.copyfileobj(fsrc, fdst) - копирует один файл в другой. shutil.copymode(fsrc, fdst) - копирует права доступа из одного файла в другой. shutil.copystat(fsrc, fdst) - копирует дату последнего доступа и изменения из одного файла в другой. Библиотека позволяет так же работать с архивами shutil.get_archive_formats(), чтобы узнать доступные для работы архивы. Подписывайтесь на канал 👉@pythonofff

Работа с процессами в Python С появлением многоядерных процессоров стала общеупотребительной практика распространять нагрузку
Работа с процессами в Python С появлением многоядерных процессоров стала общеупотребительной практика распространять нагрузку на все доступные ядра. Существует два основных подхода в распределении нагрузки: использование процессов и потоков. О первом мы как раз сейчас и поговорим. Подробнее Подписывайтесь на канал 👉@pythonofff

Обработка строки Полезные функции для работы со строками. Python известен тем, что можно написать код в одну строчку использо
Обработка строки Полезные функции для работы со строками. Python известен тем, что можно написать код в одну строчку использованием метода вместо перебора списком. Перечислим наиболее полезные методы: capitalize() - первая буква большая, остальные маленькие strip() - удаление пробелов в начале и конце center(int, chr='') - отцентрирует текст, int - нужное кол-во символов в строке, а chr - символ для добавления в начало и конец swapcase() - заглавные буквы в прописные, маленькие в большие lower() - преобразует к нижнему регистру upper() - преобразует к верхнему регистру При написании нейронок и ботов обязательно приводите все к нижнему регистру с помощью lower(). При написании ботов часто использую center(), для красивого вывода. Подписывайтесь на канал 👉@pythonofff

Как парсить сайты с авторизацией на python? Для парсинга сайтов с авторизацией, Вы можете воспользоваться selenium Посмотреть
Как парсить сайты с авторизацией на python? Для парсинга сайтов с авторизацией, Вы можете воспользоваться selenium Посмотреть пример в онлайн редакторе. Подписывайтесь на канал 👉@pythonofff

Функция findall() Если мы хотим найти все вхождения, в дело вступает функция findall(). Синтаксис: findall(pattern, string, f
Функция findall() Если мы хотим найти все вхождения, в дело вступает функция findall(). Синтаксис: findall(pattern, string, flags=0[optional]) В случае успеха данная функция возвращает список, в котором в виде строк содержатся все искомые вхождения по порядку. Если вхождений нет, то эта функция возвратит пустой список. Подписывайтесь на канал 👉@pythonofff

Потоковый ввод Вы можете обрабатывать ввод от пользователя потоком. В таком случае для завершения надо воспользоваться специа
Потоковый ввод Вы можете обрабатывать ввод от пользователя потоком. В таком случае для завершения надо воспользоваться специальной "командой" на Windows — Ctrl + D. Запустить потоковый ввод можно через библиотеку sys и метод stdin. Если требуется получить и тут же обработать строку, то так и пишем: sys.stdin Если надо в начале прочитать весь потоковый ввод, а затем обработать, то sys.stdin.readlines() На картинке представлено 2 варианта. Подписывайтесь на канал 👉@pythonofff

Библиотека showballstemmer Работали когда-нибудь над поисковиками? Хороший поисковик должен много чего уметь, например, наход
Библиотека showballstemmer Работали когда-нибудь над поисковиками? Хороший поисковик должен много чего уметь, например, находить по минимальному запросу. Некоторые используют pymorph2 (первая слишком много потребляет ресурсов), но ведь достаточно определять основу слова, а не начальную форму для нахождения большинства результатов. Библиотека showballstemmer и занимается тем, что определяет основу слова, что делает поиск более точным. А главное — библиотека мало потребляет, а результат получается намного лучше. В начале следует импортировать модуль требуемого языка, к примеру вот модули английского, русского и французского соответственно: EnglishStemmer, FrenchStemmer, RussianStemmer. Подписывайтесь на канал 👉@pythonofff

Как сделать так, чтобы функция вернула True? Менять тело функции нельзя. Требуется просто найти такое значение, при котором ф
Как сделать так, чтобы функция вернула True? Менять тело функции нельзя. Требуется просто найти такое значение, при котором функция вернёт True. Решение Подписывайтесь на канал 👉@pythonofff

Множества set Многие недооценивают данный тип, а зря. К примеру, если вам нужно найти количество одинаковых слов, то множеств
Множества set Многие недооценивают данный тип, а зря. К примеру, если вам нужно найти количество одинаковых слов, то множества с легкостью вам помогут. Похожи на списки, но на неупорядоченные. Они больше весят, но намного быстрее. В небольших проектах оправдано такое использование: множество id админов/пользователей (в зависимости от размера ОЗУ), когда требуется только проверить есть ли id в списке. Через стандартный список это займет O(n) или если он отсортирован O(log n) , в то время как у множеств это всегда O(1). Зная преимущества вы всегда можете выбрать наиболее предпочтительный вариант в той или иной ситуации. Подписывайтесь на канал 👉@pythonofff

Модуль sys Данный модуль предоставляет доступ к широким возможностям интерпретатора python. К примеру, с его помощью можно за
Модуль sys Данный модуль предоставляет доступ к широким возможностям интерпретатора python. К примеру, с его помощью можно завершить работу скрипта, узнать вес объекта, получить пути к библиотекам, узнать операционную систему, узнать кодировку файлов по умолчанию и многое другое. Если вы планируете участвовать в олимпиадах, то обязаны так же обрабатывать потоковый ввод. Для своих программ можно обойтись и без него. Я перечислил самые полезные функции, остальное всегда можно прочитать в документации (да, её стоит читать) или загуглить. Подписывайтесь на канал 👉@pythonofff

Очистка элементов в последовательности Встроенный модуль itertools был создан для работы с более сложными случаями итераторов
Очистка элементов в последовательности Встроенный модуль itertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти. Иногда возникает необходимость удалить ненужные объекты в последовательности. Как раз для этого и используют itertools, а именно метод compress. Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности. Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее. Подписывайтесь на канал 👉@pythonofff

Принципы программирования. Хороший разработчик пишет качественный код. Сейчас существуют главные правила написания хорошего кода, им даже придуманы аббревиатуры. Их сейчас и разберем. KISS Keep It Stupid Simple - придерживайся простоты. Хороший пример этому - побитовые операции и регулярки. Это не означает, что их нельзя использовать. Но не надо использовать их там, где это не нужно. Чем проще написан код, тем легче его поддерживать вам и вашим коллегам. DRY Don’t Repeat Yourself - не повторяйся. Не следует дублировать код. Вместо копирования нужно создать функцию. В будущем это упростит отладку и изменение кода. Особенно в больших программах. YAGNI You Aren’t Gonna Need It - тебе это не понадобится. Неправильно создавать места только для будущего расширения кода. Неизвестно точно, какой именно понадобится функционал и возможно код будет мешать новому (речь не идет о заглушках на заказанный функционал). SLAP Single Level of Abstraction Principle - принцип единого уровня абстракций. Код должен оставаться поддерживаемым, особенно функции. Если функция не помещается на экран, то ее следует разбить на несколько других функций. «Функции должны выполнять только одно действие, но выполнять его хорошо» (Роберт Мартин). В частности напоминает принцип DRY, но сильно отличается, код не обязательно должен повторяться. Но должен быть разбит на логические блоки, для большего удобства Подписывайтесь на канал 👉@pythonofff

Как вывести все методы класса в Python? Для того, чтобы вывести все методы класса, Вы можете воспользоваться методами dir(),
Как вывести все методы класса в Python? Для того, чтобы вывести все методы класса, Вы можете воспользоваться методами dir(), callable(), getattr() Посмотреть пример в онлайн редакторе. Подписывайтесь на канал 👉@pythonofff

Функции высшего порядка Функции высшего порядка - функции принимающие или возвращающие другие функции. Очень говорящее назван
Функции высшего порядка Функции высшего порядка - функции принимающие или возвращающие другие функции. Очень говорящее название, запомнить очень просто Чуть ранее мы говорили про lambda, они очень хорошо взаимодействуют с высшими функциями. Про одну из них мы говорили - map(). Она может принимать в себя лямбду, но это не дает такой большой функциональности. Еще одна функция-итератор - filter() Она поможет отфильтровать списки или итераторы. Первым принимает функцию, если она возвращает True, то пропускает элемент, вторым аргументом принимает список или итератор. Не забывайте комбинировать функции! Подписывайтесь на канал 👉@pythonofff

Конструктор класса У классов практически во всех языках есть конструкторы — это такие специальные методы, которые вызываются
Конструктор класса У классов практически во всех языках есть конструкторы — это такие специальные методы, которые вызываются автоматически и инициализируют экземпляр класса. В Python конструкторы в классах имеют название __init__(), и их почти всегда переопределяют. Делается это для того, чтобы назначить свойства объекту и выполнить предварительные действия. Подписывайтесь на канал 👉@pythonofff

Анонимные функции Часто функции нужны только один раз, причем короткие. И избыточно создавать под них функцию и придумывать е
Анонимные функции Часто функции нужны только один раз, причем короткие. И избыточно создавать под них функцию и придумывать ей имя. Для таких случаев существуют лямбда функции, так выглядит их создание: <аргументы>: <выражение> Такие функции обязан знать каждый программист, их применение сильно сокращает код. Подписывайтесь на канал 👉@pythonofff

Бесконечные списки Мы уже рассказывали про важность копирования списков. Но именно из-за такой процедуры появляется возможнос
Бесконечные списки Мы уже рассказывали про важность копирования списков. Но именно из-за такой процедуры появляется возможность создавать бесконечные списки. Дойти до конца такого списка невозможно, при этом он потребляет минимум памяти. Попробуйте создать сами. На картинке (см. выше) видно создание. А затем мы пробуем модуль copy, чтобы узнать сможет ли он сделать глубокое копирование бесконечного объекта? Применить знание особо негде, но данное задание помогает понять работу списков. Возможно, такой вопрос задаст вам рекрутер на одном из собеседований. Подписывайтесь на канал 👉@pythonofff

Оформление кода Все вы знаете, что в python есть своя философия. Именно отсюда берутся определенные правила и стандарты. В па
Оформление кода Все вы знаете, что в python есть своя философия. Именно отсюда берутся определенные правила и стандарты. В пайтон такое соглашение назвали PEP 8 (читается - пэп). Соответствие пепу позволяет видеть основную структуру вашего кода другим разработчикам. Не нужно привыкать к другому оформлению кода. Если вы привыкли как-то оформлять код, а увидели что-то совершенно другое, то вы поймете. Официальная документация по PEP 8. Основные моменты: Используйте пробелы, разрешается использование табов, но смешивание запрещено. Отступ соответствует 4 пробелам. Хорошие редакторы кода автоматически заменяют табы на пробелы. Вокруг операторов +, -, =, *, /, ** должны быть пробелы. Строка не должна превышать 101 символа Импорты можно делать только по одному на строку! При этом из одного модуля можно доставать несколько нужных объектов. Порядок тоже важен: - стандартные библиотеки; - сторонние; - созданные вами Подписывайтесь на канал 👉@pythonofff

Пишем игру Сапер на Python Сегодня мы напишем одну из самых распространенных игр - сапер. Для графического интерфейса будем и
Пишем игру Сапер на Python Сегодня мы напишем одну из самых распространенных игр - сапер. Для графического интерфейса будем использовать библиотеку tkinter. Подробнее Полный код игры сапер на Python на GitHub Подписывайтесь на канал 👉@pythonofff