en
Feedback
Python академия

Python академия

Open in Telegram

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

Show more
7 293
Subscribers
+124 hours
-97 days
-4030 days
Posts Archive
Прочитать произвольную строку из файла Предположим, вы решили разработать чат-бота. В нем конечно же будет с десяток самых кр
Прочитать произвольную строку из файла Предположим, вы решили разработать чат-бота. В нем конечно же будет с десяток самых крутых и полезных функций, может быть даже в нем будет модные нынче нейросети. И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле text.txt: Приветствую! Здравствуйте! Ку, здарова. Добрый день! Привет! Чтобы вывести это на экран, может помочь функция getline из модуля linecache. В чем главное отличие этой функции от обычного метода чтения из файла? Функция getline кеширует все строчки файла в списке, так что следующие вызовы get_answer отработают моментально. Подписывайтесь на канал 👉@pythonofff

Удаление файлов с помощью метода shutil.os.remove() Модуль Python shutil предлагает метод remove() для удаления файлов из фай
Удаление файлов с помощью метода shutil.os.remove() Модуль Python shutil предлагает метод remove() для удаления файлов из файловой системы. Подписывайтесь на канал 👉@pythonofff

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

Закрытие открытого файла с помощью метода close() Когда вы открываете файл в Python, чрезвычайно важно закрыть файл после вне
Закрытие открытого файла с помощью метода close() Когда вы открываете файл в Python, чрезвычайно важно закрыть файл после внесения изменений. Это сохраняет любые изменения, которые вы сделали ранее, удаляет файл из памяти и предотвращает дальнейшее чтение или запись в программе. Подписывайтесь на канал 👉@pythonofff

Создание дочернего процесса Метод os.fork() создаёт дочерний процесс в том же месте кода, вызывая системную функцию fork(), и
Создание дочернего процесса Метод os.fork() создаёт дочерний процесс в том же месте кода, вызывая системную функцию fork(), и возвращает PID (Process Identifier), который равен PID дочернего процесса в родительском процессе и нулю в новом. Кстати, получается интересный случай, в коде примера выполняется и блок if, и else. Если не знать про os.fork() и посмотреть вывод подобного кода, то возникнет много вопросов. Подписывайтесь на канал 👉@pythonofff

Функции str.split и rsplit() в Python Функция split() в Python используется для разделения строки на список строк на основе р
Функции str.split и rsplit() в Python Функция split() в Python используется для разделения строки на список строк на основе разделителя. В качестве разделителя используется аргумент sep. Если строка содержит последовательные разделители, возвращается пустая строка. Аргумент-разделитель также может состоять из нескольких символов Подписывайтесь на канал 👉@pythonofff

Дескрипторы Дескриптор – это атрибут объекта со “связанным поведением”, то есть такой атрибут, при доступе к которому его пов
Дескрипторы Дескриптор – это атрибут объекта со “связанным поведением”, то есть такой атрибут, при доступе к которому его поведение переопределяется методом протокола дескриптора. Если хотя бы один из этих методов определен в объекте, то можно сказать, что этот метод – дескриптор. Для того, чтобы определить свой собственный дескриптор, обычно определяют три специальных метода класса __get__, __set__ или __delete__. После этого можно создать новый класс и в атрибут этого класса записать объект типа дескриптор. У данного объекта будет переопределено поведение при доступе к атрибуту (__get__), при присваивании значений (__set__) или при удалении (__delete__). Подписывайтесь на канал 👉@pythonofff

Что можно делать в оболочке Python? В оболочке можно делать практически все, что вообще позволяет делать язык Python: использ
Что можно делать в оболочке Python? В оболочке можно делать практически все, что вообще позволяет делать язык Python: использовать переменные, циклы, условия для определения функций и т. д. Символы >>> — это приглашение оболочки, тут вы можете вводить свои команды. Если ваши команды занимают несколько строк, например, при определении цикла, оболочка выводит троеточие …, которое сигнализирует о продолжении строки. Подписывайтесь на канал 👉@pythonofff

Разница между __str__ и __repr__ Оба магических метода __str__ и __repr__ используются для получения строкового представления
Разница между __str__ и __repr__ Оба магических метода __str__ и __repr__ используются для получения строкового представления объекта. Давайте разберемся, в чем же собственно разница между ними. Метод __str__ используется для создания вывода для конечного пользователя, а __repr__ в основном используется для отладки и разработки. Другими словами, цель __repr__ – быть однозначным, а __str__ – читабельным. Функция print() и встроенная функция str() используют метод __str__ для отображения строкового представления объекта, а вот встроенная функция repr() использует для этого метод __repr__. Подписывайтесь на канал 👉@pythonofff

Как удалить элемент из списка с помощью индекса в Python Для удаления элемента по индексу используйте pop(). Для этого также
Как удалить элемент из списка с помощью индекса в Python Для удаления элемента по индексу используйте pop(). Для этого также подойдет ключевое слово del. Подписывайтесь на канал 👉@pythonofff

Наследование Наследование позволяет создавать новый класс на основе уже существующего. Таким образом, можно создать новый кла
Наследование Наследование позволяет создавать новый класс на основе уже существующего. Таким образом, можно создать новый класс, взяв за основу все методы и атрибуты другого. В данном случае класс Person является родительским классом, также его называют базовым классом или суперклассом. А класс Employee называется дочерним классом или подклассом. Наследование классов нужно для изменения поведения конкретного класса, а также для расширения его функционала. Подписывайтесь на канал 👉@pythonofff

Непрерывная проверка Поскольку цикл while будет продолжать выполняться до тех пор, пока условие не станет ложным, вы должны у
Непрерывная проверка Поскольку цикл while будет продолжать выполняться до тех пор, пока условие не станет ложным, вы должны убедиться, что это так, иначе программа никогда не завершится. Иногда это может пригодиться, когда вы хотите, чтобы ваша программа ждала ввода и продолжала непрерывно проверять. Подписывайтесь на канал 👉@pythonofff

Дробные числа По умолчанию числа с плавающей точкой используют память привычным образом, то есть они хранятся в двоичном виде
Дробные числа По умолчанию числа с плавающей точкой используют память привычным образом, то есть они хранятся в двоичном виде. Это означает, что вы обычно работаете с приблизительными значениями, а не точными. Можно использовать тип данных Decimal, который предоставит намного большую точность, но и его может не хватить в некоторых случаях. Поэтому для идеальных вычислений лучше использовать Fraction, который представляет и хранит число в виде рациональной дроби. Подписывайтесь на канал 👉@pythonofff

Оператор break Оператор break используется для преждевременного выхода из цикла for. Он используется для прерывания цикла при
Оператор break Оператор break используется для преждевременного выхода из цикла for. Он используется для прерывания цикла при выполнении определенного условия. Допустим, у нас есть список чисел, и мы хотим проверить, присутствует ли число. Мы можем перебрать список чисел и, если число найдено, выйти из цикла, потому что нам не нужно продолжать перебирать оставшиеся элементы. Подписывайтесь на канал 👉@pythonofff

Инкремент с помощью __pos__ В Python нет операции инкремента ++ как в си-подобных языках, поэтому используется x += 1. Однако
Инкремент с помощью __pos__ В Python нет операции инкремента ++ как в си-подобных языках, поэтому используется x += 1. Однако запись ++x является валидным кодом (но не x++), так как это просто два унарных оператора сложения. При применении унарного плюса у объекта вызывается магический метод __pos__, то есть запись ++x можно понять как x.__pos__().__pos__(). Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента. Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода __pos__. Если реализовать все остальные необходимо магические методы, то может получится полноценный класс числа, но в продакшне такие приколы лучше не писать. Подписывайтесь на канал 👉@pythonofff

Подборка Telegram каналов для программистов Системное администрирование 📌 https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало) https://t.me/sysadminof Книги для админов, полезные материалы https://t.me/i_odmin Все для системного администратора https://t.me/i_odmin_book Библиотека Системного Администратора https://t.me/i_odmin_chat Чат системных администраторов https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др. https://t.me/sysadminoff Новости Линукс Linux https://t.me/tikon_1 Новости высоких технологий, науки и техники💡 https://t.me/mir_teh Мир технологий (Technology World) https://t.me/rust_lib Полезный контент по программированию на Rust https://t.me/golang_lib Библиотека Go (Golang) разработчика https://t.me/itmozg Программисты, дизайнеры, новости из мира IT. https://t.me/phis_mat Обучающие видео, книги по Физике и Математике https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 https://t.me/nodejs_lib Подборки по Node js и все что с ним связано https://t.me/ruby_lib Библиотека Ruby программиста 1C разработка 📌 https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С Программирование C++📌 https://t.me/cpp_lib Библиотека C/C++ разработчика https://t.me/cpp_knigi Книги для программистов C/C++ https://t.me/cpp_geek Учим C/C++ на примерах Программирование Python 📌 https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍 https://t.me/BookPython Библиотека Python разработчика https://t.me/python_real Python подборки на русском и английском https://t.me/python_360 Книги по Python Rus Java разработка 📌 https://t.me/BookJava Библиотека Java разработчика https://t.me/java_360 Книги по Java Rus https://t.me/java_geek Учим Java на примерах GitHub Сообщество 📌 https://t.me/Githublib Интересное из GitHub Базы данных (Data Base) 📌 https://t.me/database_info Все про базы данных Мобильная разработка: iOS, Android 📌 https://t.me/developer_mobila Мобильная разработка https://t.me/kotlin_lib Подборки полезного материала по Kotlin Фронтенд разработка 📌 https://t.me/frontend_1 Подборки для frontend разработчиков https://t.me/frontend_sovet Frontend советы, примеры и практика! https://t.me/React_lib Подборки по React js и все что с ним связано Разработка игр 📌 https://t.me/game_devv Все о разработке игр Вакансии 📌 https://t.me/sysadmin_rabota Системный Администратор https://t.me/progjob Вакансии в IT Чат программистов📌 https://t.me/developers_ru Библиотеки 📌 https://t.me/book_for_dev Книги для программистов Rus https://t.me/programmist_of Книги по программированию https://t.me/proglb Библиотека программиста https://t.me/bfbook Книги для программистов https://t.me/books_reserv Книги для программистов БигДата, машинное обучение 📌 https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning Программирование 📌 https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций https://t.me/coddy_academy Полезные советы по программированию QA, тестирование 📌 https://t.me/testlab_qa Библиотека тестировщика Шутки программистов 📌 https://t.me/itumor Шутки программистов Защита, взлом, безопасность 📌 https://t.me/thehaking Канал о кибербезопасности https://t.me/xakep_1 Статьи из "Хакера" Книги, статьи для дизайнеров 📌 https://t.me/ux_web Статьи, книги для дизайнеров Английский 📌 https://t.me/UchuEnglish Английский с нуля Математика 📌 https://t.me/Pomatematike Канал по математике Excel лайфхак📌 https://t.me/Excel_lifehack

Поиск всех HTML-элементов по названию С помощью метода find_all мы можем найти все элементы, которые соответствуют некоторым
Поиск всех HTML-элементов по названию С помощью метода find_all мы можем найти все элементы, которые соответствуют некоторым критериям. Подписывайтесь на канал 👉@pythonofff

Лимит рекурсии В Python не поддерживается хвостовая рекурсия, из-за чего зачастую возникает RecursionError во время создания
Лимит рекурсии В Python не поддерживается хвостовая рекурсия, из-за чего зачастую возникает RecursionError во время создания рекурсивных алгоритмов. Но с помощью модуля sys можно посмотреть и даже изменить максимальную глубину рекурсии. Однако делать это слегка опасно, так как каждый новый вызов занимает достаточно много памяти. И вообще лучше стараться использовать не рекурсию, а обычные циклы. Подписывайтесь на канал 👉@pythonofff

Открываем сайт для парсинга через Requests + BeautifulSoup Requests — это простая HTTP библиотека для Python. Она предоставля
Открываем сайт для парсинга через Requests + BeautifulSoup Requests — это простая HTTP библиотека для Python. Она предоставляет методы для доступа к веб-ресурсам через HTTP запросы. Подписывайтесь на канал 👉@pythonofff

Символы Юникода Добавлять юникод-символы в строковые литералы можно не только с помощью их номеров, но и по их названиям. Бол
Символы Юникода Добавлять юникод-символы в строковые литералы можно не только с помощью их номеров, но и по их названиям. Более того, такая запись символов юникода совместима и с f-строками, а это очень удобно. Подписывайтесь на канал 👉@pythonofff