Библиотека Python разработчика | Книги по питону
Погружение в CPython и архитектуру. Разбираем неочевидное поведение (GIL, Memory), Best Practices (SOLID, DDD) и тонкости Django/FastAPI. Решаем задачи с подвохом и оптимизируем алгоритмы. 🐍 По всем вопросам @evgenycarter РКН clck.ru/3Ko7Hq
نمایش بیشتر📈 تحلیل کانال تلگرام Библиотека Python разработчика | Книги по питону
کانال Библиотека Python разработчика | Книги по питону (@bookpython) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 17 967 مشترک است و جایگاه 7 242 را در دسته فناوری و برنامهها و رتبه 36 580 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 17 967 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 02 نوامبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -89 و در ۲۴ ساعت گذشته برابر -1 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 5.58% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 2.74% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 1 003 بازدید دریافت میکند. در اولین روز معمولاً 492 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 4 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند numbers, yield, модуль, none, декоратор تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Погружение в CPython и архитектуру. Разбираем неочевидное поведение (GIL, Memory), Best Practices (SOLID, DDD) и тонкости Django/FastAPI. Решаем задачи с подвохом и оптимизируем алгоритмы. 🐍
По всем вопросам @evgenycarter
РКН clck.ru/3Ko7Hq”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 03 نوامبر, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
# Filter Text
# Import re module
import re
# Take any string data
string = """a string we are using to filter specific items.
perhaps we would like to match credit card numbers
mistakenly entered into the user input. 4444 3232 1010 8989
and perhaps another? 9191 0232 9999 1111"""
# Define the searching pattern
pattern = '(([0-9](\s+)?){4}){4}'
# match the pattern with input value
found = re.search(pattern, string)
print(found)
# Print message based on the return value
if found:
print("Found a credit card number!")
else:
print("No credit card numbers present in input")
👉@BookPythonpip install PyPDF2
# import module PyPDF2
import PyPDF2
# put 'example.pdf' in working directory
# and open it in read binary mode
pdfFileObj = open('example.pdf', 'rb')
# call and store PdfFileReader
# object in pdfReader
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
# to print the total number of pages in pdf
# print(pdfReader.numPages)
# get specific page of pdf by passing
# number since it stores pages in list
# to access first page pass 0
pageObj = pdfReader.getPage(0)
# extract the page object
# by extractText() function
texts = pageObj.extractText()
# print the extracted texts
print(texts)
Объединение двух файлов в один
Копироуем текст из двух PDF-файлов и объединить его в новый PDF-файл.
import PyPDF2
# open two pdfs
pdf1File = open('example.pdf', 'rb')
pdf2File = open('example2.pdf', 'rb')
# read first pdf
pdf1Reader = PyPDF2.PdfFileReader(pdf1File)
# read second pdf
pdf2Reader = PyPDF2.PdfFileReader(pdf2File)
# for writing in new pdf file
pdfWriter = PyPDF2.PdfFileWriter()
for pageNum in range(pdf1Reader.numPages):
pageObj = pdf1Reader.getPage(pageNum)
pdfWriter.addPage(pageObj)
for pageNum in range(pdf2Reader.numPages):
pageObj = pdf2Reader.getPage(pageNum)
pdfWriter.addPage(pageObj)
# create new pdf 'example3.pdf'
pdfOutputFile = open('example3.pdf', 'wb')
pdfWriter.write(pdfOutputFile)
pdfOutputFile.close()
pdf1File.close()
pdf2File.close()
👉@BookPythonfolder_path.
Затем мы вызываем функцию os.listdir(), которая вернет список всех файлов и папок в указанной папке. Мы проходим циклом for через этот список и выводим на экран имена файлов.
👉@BookPythonsys.allow_boolean_assignment разрешает создавать переменные с именами, зарезервированными под идентификаторы типа bool. Поэтому этот код запустится и выведет "True is False".
Эта настройка введена в известном первоапрельском коммите, который до сих пор остался в коде интерпретатора. Если кандидат об этом знает, можно с уверенностью сказать, что он общается в профессиональных кругах и любят углубляться в детали.
👉@BookPythonimportlib.import_module()
В этом примере мы импортируем модуль importlib и используем его функцию import_module() для динамической загрузки модуля math. Затем мы используем функцию sqrt() из загруженного модуля.
Динамическая загрузка модуля может быть полезна, например, если вы хотите загрузить модуль в зависимости от каких-то условий, которые определяются во время выполнения программы. Такой подход — медленный, но он помогает эффективнее использовать память.
import importlib
# Загрузка модуля 'math' динамически
math_module = importlib.import_module('math')
# Использование функции 'sqrt' из модуля 'math'
print(math_module.sqrt(16))
👉@BookPythonimport pytube
link = "ссылка на видео c Youtube"
yt = pytube.YouTube(link)
stream = yt.streams.first()
stream.download()
👉@BookPython