byteofpython | Unsorted

Telegram-канал byteofpython - 🐍 Укус питона 🐍

2619

🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @it_dashka 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython

Subscribe to a channel

🐍 Укус питона 🐍

Яндекс открыл прием заявок в Летнюю Школу бэкенд-разработки

В Школе бэкенд-разработки учат тонкостям написания кода для высоконагруженных веб‑сервисов, навыкам эксплуатации сложных систем и новым знаниям в области бэкенда.

Ученики пройдут двухэтапное обучение: лекции онлайн и очная командная работа в одном из офисов Яндекса в Москве, Санкт-Петербурге и Екатеринбурге с оплатой билетов и проживания. Лучшие студенты пройдут второй этап в новом формате Лаборатории — пятинедельной оплачиваемой практике с задачами от команды Яндекса.

Отбор студентов состоит из трех этапов с алгоритмическими задачами уровня easy и medium-hard, а также техническим интервью по теории и алгоритмам и структурам данных. Чтобы лучше подготовиться, смотрите подборку полезных материалов.

Подавай заявку и проведи лето в Яндексе

Читать полностью…

🐍 Укус питона 🐍

Открытие и закрытие файла. Продолжение.

Второй передаваемый аргумент - mode устанавливает режим открытия файла в зависимости от того, что мы собираемся с ним делать. Существует 4 общих режима:

🐍 Укус питона // 💬 Чат // #теория #файлы

Читать полностью…

🐍 Укус питона 🐍

Открытие и закрытие файла

Чтобы начать работу с файлом, его надо открыть с помощью функции open(), которая имеет следующее формальное определение:

Первый параметр функции представляет путь к файлу. Путь файла может быть абсолютным, то есть начинаться с буквы диска, например, C://somedir/somefile.txt. Либо можно быть относительным, например, somedir/somefile.txt - в этом случае поиск файла будет идти относительно расположения запущенного скрипта Python.

🐍 Укус питона // 💬 Чат // #теория #файлы

Читать полностью…

🐍 Укус питона 🐍

Кортеж с неопределенным количеством элементов.

Если нам этот параметр (rest) не важен, но мы по прежнему хотим, чтобы шаблон соответствовал кортежу с неопределенным количеством элементов, мы можем использовать подшаблон *_:

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи

Читать полностью…

🐍 Укус питона 🐍

Пропуск элементов. Продолжение.

В примере выше применяемые шаблоны соответствовали только двухэлементному кортежу. Однако также можно использовать одновременно шаблоны кортежей с разным количеством элементов:

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи

Читать полностью…

🐍 Укус питона 🐍

Пропуск элементов.

Если нам не важен какой-то элемент кортежа, то в шаблоне вместо конкретного значния или переменной можно указать шаблон _:

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи

Читать полностью…

🐍 Укус питона 🐍

Альтернативные значения. Продолжение.

Также можно задать альтернативные значения для отдельных элементов, но и альтернативные кортежи:

В данном случае первый шаблон будет соответствовать двум кортежам: ("Tom", 37) и ("Sam", 22).

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи

Читать полностью…

🐍 Укус питона 🐍

Альтернативные значения.

Если необходимо, чтобы элемент кортежа соответствовал набору значений, то эти значения можно перечислить через вертикальную черту:

В данном случае первый шаблон соответствует двухэлементному кортежу, где первый элемент равен или "Tom", или "Tomas", или "Tommy".

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи

Читать полностью…

🐍 Укус питона 🐍

Кортежи в pattern matching. Продолжение.

Второй шаблон соответствует любому двухэлементному кортежу, первый элемент которого равен строке "Tom":

Для второго элемента определяется переменная age. В итоге, если первый элемент кортежа равен строке "Tom", а второй не равен 37, то такой кортеж будет соответствовать второму шаблону. Причем второй элемент будет передаваться переменной age.

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи

Читать полностью…

🐍 Укус питона 🐍

Pattern matching. Конструкция match. Продолжение.

Подобным образом можно сравнивать выражения с данными других типов. Например:

Здесь функция operation принимает два числа и код операции. Конструкция match сравнивает код операции с конкретными значениями и в зависимости от значения выполняет на числами определенную операцию. Например, если code равен 1, то выполняется выражение, второй пример:

это выражение case возвратит из функцию сумму чисел a и b.

Аналогично если code = 2, то возвращается разность, а если code = 3, то возвращается произведение чисел. Во всех остальных случаях возвращается 0.

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match

Читать полностью…

🐍 Укус питона 🐍

Pattern matching. Конструкция match. Продолжение.

Но также можно определить блок case, который позволяет сравнивать сразу с несколькими знечениями. В этом случае значения разделяются вертикальной чертой:

В данном случае шаблон case "american english" | "british english" | "english" соответствует сразу трем значениям.

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match

Читать полностью…

🐍 Укус питона 🐍

Pattern matching. Конструкция match. Продолжение.

Обратите внимание, что блоки case имеют отступы от начала конструкции match. А инструкции каждого блока case имеют отступы от начала данного блока case. Но если блок case имеет одну инстукцию, ее можно поместить на той же строке, что и оператор case:

Причем если выражение из match не соответствует ни одному из шаблонов case, то соответственно ни один из этих блоков case не выполняется.

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match

Читать полностью…

🐍 Укус питона 🐍

Pattern matching. Конструкция match. Продолжение.

После ключевого слова match идет сравниваемое выражение. И затем после двоеточия на последующих строках располагаются выражения case. После каждого выражения case указывается шаблон, с которым сравнивается выражение из match. После шаблона через двоеточие указываются набор выполняемых действий блока case.

Конструкция match последовательно сравнивает выражение с шаблонами из блоков case. И если был найден шаблон из какого-нибудь блока case соответствует выражению из match, то выполняются инструкции из данного блока case.

В качестве паттернов/шаблонов, с которыми сравниваются выражения, могут применяться как данные примитивных типов, так и последовательности элементов и объектов классов.

Вначале рассмотрим ситуацию, когда в качестве шаблона выступают литералы примитивных типов. Например, в зависимости от языка выведем приветственное сообщение:

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match

Читать полностью…

🐍 Укус питона 🐍

Pattern matching. Конструкция match.

Начиная с версии 3.10 в языке Python появилась такая функциональность как pattern matching (сопоставление шаблонов). Pattern matching представляет применение конструкции match, которая позволяет сопоставить выражение с некоторым шаблоном. И если выражение соответствует шаблону, то выполняются определенные действия. В этом смысле конструкция match похожа на конструкцию if/else/elif, которая выполняет определенные действия в зависимости от некоторого условия. Однако функциональность match гораздо шире - она также позволяет извлечь данные из составных типов и применить действия к различным частям объектов.

Конструкция match имеет следующее формальное определение:

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match

Читать полностью…

🐍 Укус питона 🐍

Погрузитесь в мир Python с нашим бесплатным курсом!

🎓 Включено 45 уроков, 56 упражнений в тренажере и 163 проверочных теста. Узнаете, как создавать программы, работать с условиями и функциями.

Что вы освоите:
— Составление программ из нескольких модулей.
— Анализ ошибок в коде с использованием отладочной печати.

📚 Курс охватывает основы Python: синтаксис, условия, циклы, типы данных и библиотеки. Практика на каждом шаге поможет вам уверенно использовать язык.

Начните свое обучение с бесплатного базового курса Python и вы сможете создавать несложные программы, а так же анализировать ошибки в коде!

Читать полностью…

🐍 Укус питона 🐍

Открытие и закрытие файла. Продолжение.

Например, открытие текстового файла на запись, первый пример:

Или открытие бинарного файла на чтение, второй пример:

После завершения работы с файлом его обязательно нужно закрыть методом close(). Данный метод освободит все связанные с файлом используемые ресурсы.

Например, откроем для записи текстовый файл "hello.txt", последний пример:

🐍 Укус питона // 💬 Чат // #теория #файлы

Читать полностью…

🐍 Укус питона 🐍

Сколько программист может зарабатывать на фрилансе?

Вчера взял проект за 1000$ — сегодня купил здесь рекламу.

Хватит писать код бесплатно, начни монетизировать своё дело. А о том, как это сделать расскажет канал «Фриланс с Хаямом Алиевым»

Будь первым, кто познает все тонкости фриланса:
/channel/+C1iWMI2pPE1hM2Ni

Читать полностью…

🐍 Укус питона 🐍

Работа с файлами. Открытие и закрытие файлов.

Python поддерживает множество различных типов файлов, но условно их можно разделить на два виде: текстовые и бинарные. Текстовые файлы - это к примеру файлы с расширением cvs, txt, html, в общем любые файлы, которые сохраняют информацию в текстовом виде. Бинарные файлы - это изображения, аудио и видеофайлы и т.д. В зависимости от типа файла работа с ним может немного отличаться.

При работе с файлами необходимо соблюдать некоторую последовательность операций, смотрим пример:

🐍 Укус питона // 💬 Чат // #теория #файлы

Читать полностью…

🐍 Укус питона 🐍

Кортеж с неопределенным количеством элементов.

Если необходимо сравнивать выражение с кортежем неопределенной длины, то можно определять все остальные значения кортежа с помощью символа * (звездочки):

В примере выше применяется параметр *rest, который соответствует всем остальным элементам. То есть в примере выше шаблоны ("Tom", 37, *rest) и (name, age, *rest) соответствуют любому кортежу с двумя элементами и больше. Все элементы начиная с третьего будут помещаться в параметр rest, который представляет массив значений.

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи

Читать полностью…

🐍 Укус питона 🐍

Пропуск элементов. Продолжение.

Можно использовать прочерки для всех элементов кортежа, в этом случае значения всех этих элементов будут не важны:

В причем в последнем случае шаблон (_, _) по прежнему соответствует только двухэлементному кортежу

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи

Читать полностью…

🐍 Укус питона 🐍

Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Регистрируйтесь по ссылке: https://telega.in/c/byteofpython
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.

Читать полностью…

🐍 Укус питона 🐍

🔥ChatGPT теперь в телеграм!

Для всех, кто устал сёрчить Хабр, рыться в куче непроверенной информации появился канал, который ведет ChatGPT: ищет новости, связанные с IT и публикует их в сжатом виде.

❗️Не потеряй ссылку - /channel/+Tci9SwJcPlg1ZWI6

Читать полностью…

🐍 Укус питона 🐍

Кортежи в pattern matching. Продолжение.

Третий шаблон во многом аналогичен, только теперь строго определен второй элемент кортежа - он должен быть равен 22, а первый попадает в переменную name:

Если двухэлементный кортеж не соответствует первому, второму и третьему шаблонам, то он будет соответствовать четвертому шаблону, в которому нам не важные конкретные значения - для них определены переменные name и age:

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи

Читать полностью…

🐍 Укус питона 🐍

Кортежи в pattern matching.

В качестве шаблонов в pathern matching в Python могут выступать кортежи. Например:

В данном случае функция принимает параметр user, который, как предполагается, представляет кортеж из двух элементов. И конструкция match сравнивает этот кортеж с рядом шаблонов. Первый шаблон предполагает, что кортеж user точно соответствует набору значений, вторая маленькая часть кода:

То есть, если первый элемент кортежа равен "Tom", а второй - 37, то на консоль выводится строка "default user"

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи

Читать полностью…

🐍 Укус питона 🐍

💎 PyLinux - канал для Python программистов и фанов Linux.

👉 Там ты найдешь:

- библиотеки и скрипты Python
- инструменты и лучшие практики Linux
- полезный софт
- важнейшие новости из мира IT

💪 Заходи и прокачивай свои скиллы вместе с PyLinux!

Читать полностью…

🐍 Укус питона 🐍

Pattern matching. Конструкция match. Продолжение.

Если необходимо, чтобы при несовпадении значений (если ни один из шаблонов case не соответствует выражению match) выполнялись некоторые действия по умолчанию, то в этом случае применяется шаблон _ (прочерк):

Если ни один из шаблонов case не соответствует значению language, то будет выполняться блок, второй пример:

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match

Читать полностью…

🐍 Укус питона 🐍

Pattern matching. Конструкция match. Продолжение.

Здесь функция print_hello принимает параметр language, через который передается выбранный язык. В самой функции конструкция match сравнивает значение переменной language. В блоках case определяются шаблоны - строки, с которыми сопоставляется переменная language.

Например при вызове print_hello("english") параметр language равен "english", поэтому конструкция match выберет следующий блок case:

🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match

Читать полностью…

🐍 Укус питона 🐍

👩‍💻 Как работать с паттернами проектирования в Python?

Расскажет Станислав Ступников — руководитель разработки в VK.

 Встречаемся на бесплатном практическом уроке от OTUS, где мы:

▫️займемся классификацией паттернов;
▫️покажем, насколько хорошо и ровно они транслируются в мир Python-разработки;
▫️ обсудим, как с ними работать. 

📢  Занятие пройдёт 28 февраля в 20:00 мск и будет приурочено к старту курса «Python Developer. Professional». Доступна рассрочка на обучение!

⬇️ Пройдите короткий тест прямо сейчас, чтобы занять место на открытом уроке и получить запись: пройти тест

Читать полностью…

🐍 Укус питона 🐍

Форматирование без метода format.

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

То есть в начале идет строка, которая содержит те же плейсхолдеры, которые были рассмотрены выше (за исключением плейсхолдера %), после строки ставится знак процента %, а затем список значений, которые вставляются в строку. Фактически знак процента представляют операцию, в результате которой образуется новая строка, второй пример:

Рядом с плейсхолдером указывается знак процента и в отличие от функции format здесь не требуются фигурные скобки.

Причем способы форматирования чисел здесь также применяются:

🐍 Укус питона // 💬 Чат // #теория #строки #форматирование

Читать полностью…

🐍 Укус питона 🐍

Подстановки. Продолжение.

Плейсхолдеры можно использовать и в f-строках, смотрим пример:

Для дробных чисел, то есть таких, которые представляют тип float, перед кодом плейсхолдера после точки можно указать, сколько знаков в дробной части мы хотим вывести, второй пример:

Еще один параметр позволяет установить минимальную ширину форматируемого значения в символах, третий пример:

🐍 Укус питона // 💬 Чат // #теория #строки #форматирование

Читать полностью…
Subscribe to a channel