Python Skills 🐍
306 subscribers
1.02K photos
17 videos
302 links
Канал полезного и юмористического контента на тему программирования, в частности такого языка как Python.

По всем вопросам: @andrey_andrey01
Download Telegram
Информация по Python 3.10

Многие очень ждут выхода Python версии 3.10, и вот недавно выпустили первую бета версию, с которой уже можно поэкспериментировать.

Для тех, кто в танке: альфа версии выходили регулярно в последние полгода, а полный релиз запланирован на 4 октября 2021.

Вот самые интересные фичи в новой версии:

PEP 636: долгожданный match-case, похож на switch-case в других языках.
PEP 613: явные псевдонимы типов с помощью TypeAlias.
bpo-123782: исправление небольшого, но сильно раздражающего бага с контекстными менеджерами.

#updates
​​Современные программисты
⚡️ Классы и особые методы

Каждый раз, когда вы создаёте какой-либо класс, он наследуется от object.

Object имеет особые методы:

init — инициализатор класса. Он вызывается тогда, когда класс создаётся.

str,
repr— возвращает класс в виде строки. Разница между ними в том, что str должен вернуть боле «красивый» вывод.

getatribute, setattr — вызывается методами getattr и setattr. Позволяют получать и задавать значения переменных классов.

doc — документация для пользования классом. Также её можно создать используя многострочную строку после создания класса.
Базы Данных

Разберем подробнее библиотеку CSV. Модуль имеет два основных метода reader и writer, для чтения и записи соответственно. Не забывайте указывать кодировку, чаще всего это 'utf8'

В некоторых случаях при открытии файла рекомендуется получить одну строку, без 'n'. Делается это так: open(file, newline='')

При начале работе с csv указываем разделитель delimiter=';' и разделитель текста quotechar='"'

Чтение возвращает итерируемый объект, а записать что-то в файл можно через метод writerow.

#Базы_Данных #CSV
Каким будет результат выполнения кода?
Anonymous Poll
50%
{"Yellow", "Orange", "Black"}
25%
{"Yellow", "Orange", "Black", "Blue"}
13%
Error
13%
Узнать ответ
Удобная работа с файловыми путями

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

Для представления пути к файлу есть класс Path, с объектами которого уже можно производить операции. Например, методы exists() и is_dir() проверяют, существует ли файл и является ли он директорией.

Но самой классной фичей является замена os.path.join() на более удобный и элегантный вариант с использованием слэшей, как показано на картинке.

Таким образом, пакет pathlib может стать частичной заменой os в некоторых случаях при работе с файловыми путями.

#pathlib
Топ. Работа с сетевыми сокетами на Python

Сетевой сокет — это эндпоинт межпроцессного взаимодействия в компьютерной сети. Давайте рассмотрим имеющиеся в Python методы для работы с сокетами.

Читать статью

#модули
Каким будет результат?
Anonymous Poll
53%
8
6%
16
41%
Error
0%
Узнать ответ
Топ. Регулярное выражение для проверки римских чисел

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

Читать статью

#топ
Отправляем электронные письма

SMTP (Simple Mail Transfer Protocol) — это протокол, позволяющий отправлять электронные письма. В стандартной библиотеке есть пакет smtplib, реализующий его поведение.

Для подключения к серверу будем использовать класс SMTP_SSL, который включает в себя и шифрование. В его аргументы передаем адрес сервера и порт. Авторизация происходит с помощью метода login, в который передаем соответственно логин и пароль.

Отправлять письма можно одноименным методом sendmail, который принимает адреса отправителя и получается, а также сам текст. В конце программы следует закрывать соединение с помощью метода quite().

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

#email #smtp
⚡️ Что выведет этот код?