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

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

РКН clck.ru/3Ko7Hq
Download Telegram
Перед вами — книга-метод, книга-наставник, способная перевернуть мышление и помочь выработать осознанный подход к работе и жизни в целом путём высокоуровневого планирования.

В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.

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

Ознакомиться с книгой
👍31👌1
В чем разница между append и extend?

Ответ:
append добавляет значения в список, а extend добавляет в список значения из другого списка.

👉@BookPython
👍11
Подборка 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
Создание цифровых часов с помощью Python-Turtle

Turtle - это специальная функция языка Python. Используя Turtle, мы можем легко рисовать на чертежной доске. Сначала мы импортируем модуль turtle. Затем создаем окно, далее создаем объект turtle и, используя методы turtle, рисуем на чертежной доске.

import time
import datetime as dt
import turtle


# create a turtle to display time
t = turtle.Turtle()

# create a turtle to create rectangle box
t1 = turtle.Turtle()

# create screen
s = turtle.Screen()

# set background color of the screen
s.bgcolor("green")

# obtain current hour, minute and second
# from the system
sec = dt.datetime.now().second
min = dt.datetime.now().minute
hr = dt.datetime.now().hour
t1.pensize(3)
t1.color('black')
t1.penup()

# set the position of turtle
t1.goto(-20, 0)
t1.pendown()

# create rectangular box
for i in range(2):
t1.forward(200)
t1.left(90)
t1.forward(70)
t1.left(90)

# hide the turtle
t1.hideturtle()

while True:
t.hideturtle()
t.clear()
# display the time
t.write(str(hr).zfill(2)
+ ":"+str(min).zfill(2)+":"
+ str(sec).zfill(2),
font=("Arial Narrow", 35, "bold"))
time.sleep(1)
sec += 1

if sec == 60:
sec = 0
min += 1

if min == 60:
min = 0
hr += 1

if hr == 13:
hr = 1


https://www.geeksforgeeks.org/create-digital-clock-using-python-turtle/

👉@BookPython
👍2
Объект многоточие в Python

Как-то раз я наткнулся на такой фрагмент кода на Python:

class CustomException(Exception):
...

Сначала я решил, что это просто какой-то псевдокод. В Python для заполнения тела пустой функции, которая еще не реализована, обычно используется ключевое слово pass. Я подумал: «здесь указано, что далее будет больше кода, но в этом месте код сокращен, чтобы просто понять идею». Следовательно, использование ключевого слова pass означало бы, что что-то еще не реализовано. Больше я об этом не задумывался, но иногда использовал сам, чтобы объяснить коллегам определенную концепцию.

https://florian-dahlitz.de/articles/what-is-pythons-ellipsis-object

@BookPython
👍5
Напишите однострочник, который будет подсчитывать количество заглавных букв в файле

num_uppercase = sum(1 for line in open( 'filename.txt') for character in line if character. isupper ( ))

В этом однострочнике мы открываем файл ‘filename.txt’ и пробегаемся по всем его строкам и символам в каждой строке.

Для каждого символа, который является заглавной буквой метод isupper() возвращает True, и мы добавляем 1 к счетчику с помощью функции sum(). В конце, num_uppercase будет содержать количество заглавных букв в файле.

👉@BookPython
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Основные типы распределений вероятностей в примерах

Статистические исследования и эксперименты являются краеугольным камнем развития любой компании. Особенно это касается интернет-проектов, где учёт количества пользователей в день, времени нахождения на сайте, нажатий на целевые кнопки, покупок товаров является обычным и необходимым явлением. Любые изменения в пользовательском опыте на сайте компании (внешний вид, структура, контент) приводят к изменениям в работе пользователя и, как результат, изменения наблюдаются в собираемых данных. Важным элементом анализа изменений данных и его фундаментом является использование основных типов распределений случайных величин, от понимания которых напрямую зависит качество оценки значимости наблюдаемого изменения.

https://habr.com/ru/articles/801101/

👉@BookPython
5👍3
Кратко про Nameko Python

Nameko, как фреймворк для Python, предлагает удобные абстракции и инструменты для создания микросервисов, ориентированных на сообщения и события.

С Nameko можно получить не только инструмент для создания микросервисов, но и платформу для реализации распределенных систем с поддержкой Dependency Injection, позволяющей легко интегрировать различные компоненты приложения.

https://habr.com/ru/companies/otus/articles/798913/

👉@BookPython
👍5
PIP — Загрузка пакетов python для офлайн установки

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

https://habr.com/ru/articles/806691/

👉@BookPython
👍4
Tabulate

Библиотека Tabulate предназначена для красивого вывода табличных данных. Она поддерживает различные форматы таблиц и позволяет легко выводить данные в виде таблицы с заголовками и разделителями.

Основные возможности библиотеки Tabulate:
— Вывод табличных данных в различных форматах (plain, simple, grid, pipe, orgtbl, tsv, html, latex, ts, и др.).
— Автоматическое определение заголовков таблицы.
— Поддержка разных типов данных (числа, строки, списки, кортежи, словари и др.).

В результате работы кода из примера выводится таблица с данными о фруктах, их цене и количестве, оформленная в формате "grid".

👉@BookPython
👍8🔥3
🖥 Шпаргалка PySpark

👉@BookPython
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Банановые шкурки на интервью Python-разработчика

В этой статье я, Евгений Бартенев, техлид и автор курса «Python-разработчик», возьму и рассмотрю не только те «банановые шкурки», которые периодически разбрасываю сам на собеседованиях, но и те, на которых поскальзывались мои коллеги, некоторые наши студенты, да и я сам.

https://habr.com/ru/companies/yandex_praktikum/articles/805665/

👉@BookPython
👍5
Media is too big
VIEW IN TELEGRAM
Python - Полный Курс по Python [15 ЧАСОВ]

00:00:00 Введение в курс Python
00:12:20 Установка Python
00:14:56 Установка редактора кода VS Code
00:20:34 Начало работы в VS Code
00:23:02 Изменение настроек редактора VS Code
00:30:28 Знакомство с интерпретатором Python
00:43:43 Установка и использование PyCharm
00:51:48 Самое важное в Python
00:55:02 Основные типы в Python
00:58:39 Практика в интерактивном интерпретаторе Python
01:04:19 Встроенные функции
01:11:13 Функция dir и атрибуты объектов
01:33:42 Отступы в Python
01:41:46 Форматирование кода Python и PEP8
01:57:30 Введение в функции
02:16:40 Выражения
02:29:27 Переменные
02:39:02 Динамическая типизация
02:48:10 Типы и структуры данных
02:54:22 Переменные и объекты
03:06:47 Строки - str
03:27:57 Целые числа - int
03:40:56 Числа с десятичной точкой - float
03:49:40 Логический тип - bool
04:00:27 Конвертация типов
04:12:31 Магические методы
04:27:38 Списки - list
04:40:10 Методы списков
05:19:28 Словари - dict
05:27:25 Изменение значений в словарях
05:34:46 Переменные в словарях
05:39:45 Длина словаря
06:02:25 ЗАДАЧА - Словари
06:10:19 Кортежи - tuple
06:31:46 Наборы - set
06:49:40 Методы наборов
07:18:56 Диапазоны - range
07:36:47 Сравнение типов последовательностей
07:43:32 Встроенная функция zip
07:53:52 Изменение объектов в Python
08:18:34 Функции
08:29:27 Самая корткая функция и pass
08:45:31 ЗАДАЧА - Функции
08:54:17 Аргументы функций
09:16:43 ЗАДАЧИ - Именованые аргументы функций
....
12:59:24 Условные инструкции
13:29:15 ЗАДАЧА - Условные инструкции
13:45:51 Тернарный оператор
14:04:24 Циклы
14:08:47 Цикл for in
14:22:02 Цикл for in для наборов
14:25:23 ЗАДАЧИ - Цикл for in
14:45:45 Встроенная функция filter
14:56:57 Цикл while
15:00:35 Использование continue в циклах
15:05:07 ЗАДАЧА - Цикл while
15:14:31 Сокращенный цикл for in
15:31:39 ЗАДАЧИ - Сокращенный цикл for in

источник

👉@BookPython
👍15🤯7
Python: эффективное переименование файлов в директории

Если вам нужно быстро переименовать несколько файлов, вам поможет следующий сниппет на Python, использующий модуль os. Допустим, мы хотим добавить префикс "new_" к именам файлов. Вот как это будет выглядеть:

import os

for filename in os.listdir('.'):
if filename.endswith('.txt'):
os.rename(filename, f'new_{filename}')



Этот код выбирает все файлы с расширением .txt в текущей директории и добавляет к их именам префикс "new_". В зависимости от ваших требований вы можете модифицировать условия отбора файлов и способ формирования новых имен.


Продвинутое групповое переименование
Удаление префиксов и предотвращение конфликтов имен файлов
Если вы хотите удалить префикс (например "CHEESE_") из имени файла и при этом не вызвать конфликт перезаписи файлов, используйте следующий код:

import os

for filename in os.listdir('.'):
if filename.startswith('CHEESE_'):
new_filename = filename.replace('CHEESE_', '', 1)
if not os.path.exists(new_filename):
os.rename(filename, new_filename)



Подобный скрипт удаляет префикс "CHEESE_" из имени файла (однообразная замена), затем проверяет наличие файла с таким новым именем и затем переименовывает оригинальный файл.

Использование регулярных выражений для обработки сложных шаблонов имен
Для работы со сложными шаблонами имен файлов будет полезен модуль re:

import os
import re

pattern = re.compile(r'^(CHEESE_)(.*)')

for filename in os.listdir('.'):
match = pattern.match(filename)
if match:
new_filename = match.group(2)
if not os.path.exists(new_filename):
os.rename(filename, new_filename)


Этот код применяет регулярные выражения для отбора нужных частей имени файла, а затем проверяет, не создавалось ли раньше файла с таким новым именем, чтобы избежать дублирования.

Рекурсивное переименование файлов с помощью os.walk
Чтобы переименовать файлы во всех поддиректориях, используйте функцию os.walk:

import os

for root, dirs, files in os.walk('.'):
for filename in files:
if 'CHEESE_' in filename:
new_filename = filename.replace('CHEESE_', '')
original_path = os.path.join(root, filename)
new_path = os.path.join(root, new_filename)
if not os.path.exists(new_path):
os.rename(original_path, new_path)


Этот сниппет обходит все поддиректории, переименовывая файлы и сохраняя историю их предыдущих расположений.

Профессиональные рекомендации и подготовка к будущему
Будьте готовы к возможным ошибкам
Никогда не забывайте обрабатывать возможные ошибки и исключительные ситуации:

try:
os.rename(original_path, new_path)
except OSError as e:
print(f"Error: {e}")


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

Современные подходы: применение модуля pathlib
Для эффективного решения задачи переименования файлов рекомендуется использовать модуль pathlib:

from pathlib import Path

folder = Path('.')

for file_path in folder.glob('*.txt'):
file_path.rename(f'new_{file_path.name}')


С pathlib получается работать с файловыми шаблонами и структурированными путями гораздо удобнее.

Создайте резервную копию файлов перед началом работы
Бэкап перед важной работой с файлами -- это залог вашего спокойствия:


import shutil

shutil.copy2(original_path, backup_path)


👉@BookPython
👍3🔥1
Что плохого в следующем коде?

Ответ:
В Python нет объявлений переменных, поэтому он должен сам определить их область действия. Если внутри функции имеется обращение к переменной, то она считается локальной. Переменная count выше является глобальной, поэтому код выбрасывает ошибку.

👉@BookPython
👎5👍4
Основы парсинга на Python: от Requests до Selenium

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

В этой статье кратко рассказываем, как парсить данные веб-сайтов с помощью Python. Пособие подойдет новичкам и продолжающим — сохраняйте статью в закладки и задавайте вопросы в комментариях. Подробности под катом!

https://habr.com/ru/companies/selectel/articles/754674/

👉@BookPython
👍2
Сравнение производительности dict() и {} в Python

Какое-то время назад, во время разбора кода, мы обсудили выбор dict() вместо {} в новом коде на Python. Коллега утверждал, что dict() более читаем и чётче выражает предназначение кода, поэтому следует предпочесть его. Меня это не убедило, но в тот момент контраргументов не нашлось, поэтому я воздержался.

Это заставило меня задуматься: в чём разница между типом dict и литеральным выражением {}?

Давайте изучим этот вопрос.

https://madebyme.today/blog/python-dict-vs-curly-brackets/

👉@BookPython
👍6
5 неочевидных возможностей FastAPI: упрощаем работу с бэкендом на Python

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

1️⃣Включите Flask, Django, Dash или любой другой WSGI
2️⃣Смонтируйте отдельные приложения FastAPI для разных маршрутов
3️⃣Разделите маршруты FastAPI на разные файлы
4️⃣Добавьте шаблоны Jinja и статические файлы
5️⃣Используйте модель обработки конфигурации из Flask

https://levelup.gitconnected.com/5-advance-features-of-fastapi-you-should-try-7c0ac7eebb3e

👉@BookPython
👍2👎1
Шпаргалка и краткое руководство по #Flask

👉@BookPython
👍4