Библиотека Python разработчика | Книги по питону
19.5K subscribers
1.05K photos
392 videos
82 files
988 links
Полезные материалы для питониста по Фреймворкам Django, Flask, FastAPI, Pyramid, Tornado и др.

По всем вопросам @evgenycarter

РКН clck.ru/3Ko7Hq
Download Telegram
Forwarded from Python академия
Встроенная функция float в Python

Если строка, которую надо конвертировать в число, не является целым числом, здесь поможет метод float.

Float также можно использовать для преобразования целых чисел в числа с плавающей запятой.

В Python 2 такое преобразование необходимо, но в Python 3 целочисленное деление больше не является чем-то особенным (если вы специально не используете оператор «//»). Поэтому больше не нужно использовать float для этой цели, теперь float(x)/y можно легко заменить на x/y.

Подписывайтесь на канал 👉@pythonofff
CPython supports two levels of optimization. You can enable them with -O and -OO flags.

-O sets __debug__ to False and removes all assert statements from the program. -OO do the same and also discards docstrings.

A regular version of a script is cached to .pyc file while an optimized one is cached to .pyo. However, since Python 3.5 .pyo is no more a thing, .opt-1.pyc and .opt-2.pyc are introduced by PEP 488 instead.
Открытая трансляция главного зала HighLoad++ Foundation.

Для просмотра необходима только регистрация: https://bit.ly/3kmyKLD

Программа охватывает такие аспекты веб-разработок, как архитектуры крупных проектов, базы данных и системы хранения, devops и системное администрирование, нагрузочное тестирование, эксплуатация крупных проектов и другие направления, связанные с большими и высоконагруженными IT-системами.
Подборка каналов для IT специалистов 🎯

Системное администрирование 📌
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 и др.

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

CodePen 📌
https://t.me/codepen_1 Сообщество пользователей CodePen

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Вакансии для программистов 📌
https://t.me/progjob

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов

БигДата, машинное обучение 📌
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/ux_web Статьи, книги для дизайнеров

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике

Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика

Крипта 📌
https://t.me/bitkoinoff Новости криптовалют

DeepFake 📌
https://t.me/deepfakenow Публикуем deepfake видео

Мир технологий 📌
https://t.me/mir_teh Видео из мира технологий
To sort some sequence in Python you use sorted:

In : sorted([1, -1, 2, -3, 3])
Out: [-3, -1, 1, 2, 3]


With the key argument you can provide a function that will be used to get a comparison key of each value. Let's sort the same sequence by absolute values:

In : sorted([1, -1, 2, -3, 3], key=abs)
Out: [1, -1, 2, -3, 3]


Let's suppose we also want to put the numbers with the same absolute value in ascending order. In that case, we can provide a tuple as a comparison key:

In : sorted([1, -1, 2, -3, 3], key=lambda x: (abs(x), x))
Out: [-1, 1, 2, -3, 3]


This is not some sorted magic, this is how tuples are sorted in general:

In : (1, 2) == (1, 2)
Out: True

In : (1, 2) > (1, 1)
Out: True

In : (1, 2) < (2, 1)
Out: True
Аргументы по умолчанию в функциях Python

В этой статье мы расскажем, как использовать аргументы по умолчанию в функциях Python.

#python #Arguments

@BookPython
Forwarded from Python академия
Хеширование паролей Python
Для Python 3.x


Здесь пароли будут хешироваться для последующего сохранения в базе данных.

Тут мы будем использовать salt. salt является случайной последовательностью, добавленной к строке пароля перед использованием хеш-функции.

salt используется для предотвращения перебора по словарю (dictionary attack) и атак радужной таблицы (rainbow tables attacks).

Подписывайтесь на канал 👉@pythonofff
Логирование в Python

Логирование — это процесс записи потока кода при его выполнении наряду с записью любых других событий. Запись происходит в файлы, которые впоследствии можно использовать для анализа и устранения возникающих неполадок.

Логирование помогает:

В отладке кода для определения потока исходного кода во время разработки и после развертывания.
Оповещении об исключительном событии, вызванном кодом. Например, нехватке памяти и т. д.
Поиске пользователей или систем, обращающихся к коду. Подробнее
When you use a variable in Python, it's first looked up in the current scope. If no such variable is found, the next enclosing scope is searched. That is repeated until the global namespace is reached.

x = 1
def scope():
x = 2
def inner_scope():
print(x) # prints 2
inner_scope()
scope()

However, the variable assignment doesn't work the same way. The new variable is always created in the current scope unless global or nonlocal is specified:

x = 1
def scope():
x = 2
def inner_scope():
x = 3
print(x) # prints 3
inner_scope()
print(x) # prints 2
scope()
print(x) # prints 1

global allows using variables of global namespaces while nonlocal searches for the variable in the nearest enclosing scope. Compare:

x = 1
def scope():
x = 2
def inner_scope():
global x
x = 3
print(x) # prints 3
inner_scope()
print(x) # prints 2
scope()
print(x) # prints 3


x = 1
def scope():
x = 2
def inner_scope():
nonlocal x
x = 3
print(x) # prints 3
inner_scope()
print(x) # prints 3
scope()
print(x) # prints 1
Forwarded from Python академия
Python Requests анализ запроса

При составлении запроса стоит иметь в виду, что перед его фактической отправкой на целевой сервер библиотека requests выполняет определенную подготовку. Подготовка запроса включает в себя такие вещи, как проверка заголовков и сериализация содержимого JSON.

Если открыть .request, можно просмотреть PreparedRequest.

Проверка PreparedRequest открывает доступ ко всей информации о выполняемом запросе. Это может быть пейлоад, URL, заголовки, аутентификация и многое другое.

Подписывайтесь на канал 👉@pythonofff
Манипуляции с датой и временем в Python с помощью Pandas

Работать с датой и временем несложно, но нужно запомнить много справочной информации. В этой статье мы рассмотрим большую ее часть. Для демонстрации используется стандартная библиотека Python datetime и Pandas.

#python #Pandas
list allows you to store an array of any objects. This is quite helpful but may be inefficient. The array module can be used to represent arrays of base values compactly. The supported values include various C types including char, int, long, double and so on. The actual representation is determined by the C implementation.

In : a = array.array('B')
In : a.append(240)
In : a.append(159)
In : a.append(144)
In : a.append(180)
In : a.tobytes().decode('utf8')
Out: '
🐴'
Модуль Python zipapp: создание исполняемых zip-приложений.

https://realpython.com/python-zipapp/

#python #zipapp
If you want to iterate over several iterables at once, the zip function may be a good choice. It returns a generator that yields tuples containing one element from every original iterables:

In : eng = ['one', 'two', 'three']
In : ger = ['eins', 'zwei', 'drei']
In : for e, g in zip(eng, ger):
...: print('{e} = {g}'.format(e=e, g=g))
...:
one = eins
two = zwei
three = drei

Notice, that zip accepts iterables as separate arguments, not a list of arguments. To unzip values, you can use the * operator:

In : list(zip(*zip(eng, ger)))
Out: [('one', 'two', 'three'), ('eins', 'zwei', 'drei')]
Forwarded from Python академия
Продвинутая работа со списками

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

В общей форме формирования среза выглядит следующим образом:

list[start:end:step]

Комбинации параметров помогут достичь необходимого результата.

Подписывайтесь на канал 👉@pythonofff
Аудио-графическое шифрование или как звук в картинку спрятать

Под покровом вечера пятницы, поглощая хмельные запасы нашей необъятной я наткнулся на плеяды статей о шифровании. Что только куда не зашифровывали, от совсем уж банального шифра Цезаря до менее банального шифрования изображений в аудиофайл. Наслаждаясь достойным вечера чтивом, в голову зашел не разувшись интересный вопрос: "-А кто-нибудь звук в картинку прятал?". Зудящая жажда знаний заставила меня смахнуть с живота остатки кальмаровых колец и сесть за свою рабочую лошадку. Далее
Как не просто выучить Python, а разобраться в алгоритмах и структурах данных, автоматических тестах, освоить Django и всё необходимое для качественной разработки в команде?

Например, освоить профессию на Хекслете. Курс невозможно просто «отсидеть» или «прослушать», на нём дают только самое необходимое для условий реального продакшена — доступ к Open Source проектам, базе тестовых задач для подготовки к собеседованиям, кейсы для портфолио.

Так что многие студенты получают оффер ещё во время обучения. Работодатели указывают курсы Хекслета как преимущество при найме.

Узнайте подробнее о профессии «Python-разработчик» и оцените формат школы: https://clck.ru/gmXGE
The io module provides two types of in-memory file-like objects. Such objects may be helpful for interacting with interfaces that only support files without the need of creating one. The obvious example is unit-testing.

These two types are BytesIO and StringIO that works with bytes and string respectively.

In : f = StringIO()
In : f.write('first\n')
Out: 6
In : f.write('second\n')
Out: 7
In : f.seek(0)
Out: 0
In : f.readline()
Out: 'first\n'
In : f.readline()
Out: 'second\n'
Прими участие в масштабном онлайн-хакатоне «Moscow City Hack 2022» от Агентства инноваций Москвы!

Тебя ждут:
🏆 Призовой фонд 3 400 000 ₽;
💻 Задачи по разработке сервисов для мотивации студентов, привлечения волонтеров, цифрового маркетинга, импортозамещения и разоблачения fake news;
🧐 Эксперты от крупного бизнеса и Правительства Москвы;
🎓 Образовательная программа с мастер-классами и интенсивами;
🎁 Красочный мерч, подарки от партнеров и много крутых активностей 🔥

📅 Хакатон пройдет 10-13 июня 2022 года

Регистрируйся уже сейчас!
https://bit.ly/3Fog8od – индивидуальная ссылка с utm-меткой
Узнать подробности и найти команду можно в нашем Telegram-чате
t.me/MoscowCityHack
python supports several forms of starting a script. The usual one is python foo.py; in that case, foo.py would be simply executed.

However, you can also do python -m foo. If foo is not a package, then foo.py is found in sys.path and executed. If it is, then Python executes foo/__init__.py, and foo/__main__.py after that. Note, that __name__ is equal to foo during __init__.py execution, but it's __main__ during __main__.py execution.

You also can do python dir/ or even python dir.zip. In that case, dir/__main__.py is looked for and executed if found.

$ ls foo
__init__.py __main__.py
$ cat foo/__init__.py
print(__name__)
$ cat foo/__main__.py
print(__name__)

$ python -m foo
foo
__main__
$ python foo/
__main__
$ python foo/__init__.py
__main__