Zen of Python
20.1K subscribers
1.21K photos
161 videos
32 files
3.16K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Разработка на Python be like:
47😁26👍4👎3👨‍💻3
Что нового в Python 3.11.4: оператор слияния словарей

Pipe-оператор | теперь может лаконично объединить два и более словарей:

dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4}
merged_dict = dict1 | dict2
print (merged _dict) # Output: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

#лучшиепрактики
👍38🔥10👎1
PostgreSQL с нуля на Python

Двухчасовой плейлист, обучающий основам работы с популярным хранилищем данных. Помимо базовых тем вроде создания таблицы и JOIN вы встретите там и такие разделы, как UPSERT и идентификаторы UUID. Серия уроков подходит новичкам в Python и может стать комфортным способом познакомиться с SQL-подобными системами,

Ссылка на плейлист

#postgresql
🔥14👍5👎1😁1
Что нового в Python 3.11.4: точка прерывания отладки

Теперь вы можете вызвать функцию breakpoint(), чтобы

>>> def calculate_sum(a, b):
>>> result = a + b
>>> breakpoint()
>>>
>>> x = 5
>>> у = 10
>>> z = calculate_sum(x, у)
>>> print(z)

... -> breakpoint() # Debugger breake tunn result
... (Pdb)

#лучшиепрактики
🤔15👍3👎21
Аналоги Vim

Хотя этот редактор кода и является предустановленным для систем вроде Linux, однако зачастую его пользователи хотят познакомиться с более удобными альтернативами. Вашему вниманию перечень редакторов кода, подходящих для операционок без графического интерфейса (aka terminal based editors):

nano;
neovim;
vis;
slap.

А какими аналогами Vim вы пользовались? Поделитесь в комментариях.

#nano #neovim
💩6👍51
Один из 20.000 пользователей StackOverflow ищет, как выйти из Vim

В этом году Stack Overflow достигли интересного показателя: более миллиона пользователей форума ищут решение вышеупомянутой задаче.

А на каком месяце / году программирования вы запомнили, как выйти из этого редактора? Поделитесь в комментариях.

#факты
🔥18😁7💩2👍1
asyncio для сетевых инженеров

Исчерпывающий гайд, с помощью которого вы узнаете, в чём разница между параллельными процессами, потоками и асинхронным программированием.

Руководство под авторством Натальи Самойленко разделено на несколько частей:

— основы работы с сопрограммами;
— асинхронные модули;
— создание классов в asyncio;
— использование модуля asyncio;
— работа с циклом событий.

Документация также дополняется блоком заданий и примеров кода.

#asyncio
7🔥4👍3
Библиотека для работы со съемными устройствами

PyUSB — библиотека, предназначенная для удобного взаимодействия с USB. Позволяет находить устройства, читать и записывать данные.

pip install pyusb

import usb.core
import usb.util

dev = usb.core.find(find_all=True) # найдет подключенные USB-устройства

device.write(drive_name, data.txt) # Запишет на носитель

Документация

#лучшиепрактики
9
Как насчёт теста на Data Engineer?

Spark является одним из самых важных фреймворков в области Big Data с открытым исходным кодом. Тест состоит из 24 вопросов, на него потребуется около получаса.

Пройти тест можно по ссылке.

#spark
👍2👎2
Что нового в Python 3.11.4: библиотека zoneinfo

Теперь timestamp без временной зоны со своим плюсом в виде читаемости можно использовать без опаски: с помощью zoneinfo к нему добавляется атрибут — данные о часовом поясе:

from zoneinfo import ZoneInfo
from datetime import datetime, timedelta

dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
print(dt)
2020-10-31 12:00:00-07:00

dt.tzname()
'PDT'

Документация
👎2👏1
Обновлённый роадмап Data Science 2023

Если вы только подступились к Науке о данных, роадмап – хорошее средство сэкономить время. Так что представляем карту навыков глазами практикующего специалиста. На диаграмме Исикавы вы найдёте самые распространённые понятия и инструменты.

А подробнее — в статье по ссылке.

#карьера
2🔥2👍1💩1
Библиотека для генерации одноразовых паролей

Двухфакторная аутентификация – это вполне подъёмно в первый же год кодинга на Python. С этим вам поможет библиотека PyOTP:

import pyotp
import time

totp = pyotp.TOTP('base32secret3232')
totp.now() # => '492039'

# OTP verified for current time
totp.verify('492039') # => True
time.sleep(30)
totp.verify('492039') # => False

Ссылка на репозиторий

#otp #2fa
👍10🔥4💩1
TypeVarTuple для кортежей с разными типами данных

Допустим, мы создаём функцию convert_first_int(), которая возвращает кортеж практически неизменным, только первый элемент приводит к целочисленному типу:

from typing import TypeVarTuple

Ts = TypeVarTuple("Ts")

def convert_first_int(values: tuple[int|str|float, *Ts]) -> tuple[int, *Ts]:
return (int(values[0]), *values[1:])

print(repr(convert_first_int(("1", "2", "3"))))

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

(1, '2', '3')

Спасибо подписчику @Trizalio за годную тему для поста.

#лучшиепрактики
👍3🔥1
Как работать с gdb

Интересный видеоурок о том, как пользоваться отладчиком. В нём вы узнаете:

— как запустить gbd по шагам;
— самые популярные команды;
— как читать стек.

#gdb
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Двойственные ощущения вызывает этот тест крема Vim...
😁17🤔11👍4👎32
LiteralString: Защита от SQL-инъекций

Внутрь текста (например, в поле формы) можно внедрить SQL-запрос и видоизменить базу данных. Начиная с Python 3.11 мы можем использовать LiteralString во избегание таких уязвимостей:

def caller(
arbitrary_string: str,
query_string: LiteralString,
table_name: LiteralString,
) -> None:
run_query("SELECT * FROM students") # ok
run_query(query_string) # ok
run_query("SELECT * FROM " + table_name) # ok
run_query(arbitrary_string) # error
run_query(f"SELECT * FROM students WHERE name = {arbitrary_string}" # error
)

Спасибо подписчику @Trizalio за годную тему для поста.

#лучшиепрактики
👍8
Что такое байт-код и как он поможет при дебаггинге

Мы нашли для вас качественную получасовую лекцию с PyCon Cleveland, где автор рассказывает, как читать байт-код и что полезного в нём можно найти в процессе отладки программы.

#дебаггинг
👎2😐1
Каким будет результат выполнения кода?
Anonymous Poll
7%
[10, 5,, 6]
16%
[10, 5, 6]
59%
[10, 6]
18%
Error
💩5👍1