Может ли быть индекс списка отрицательным?
Ответ:
Да, индекс списка может быть отрицательным. В таком случае, отрицательное значение считается от конца списка, где -1 соответствует последнему элементу, -2 — предпоследнему элементу и так далее.
Например, чтобы получить последний элемент списка my_list в Python, можно использовать следующую команду:
last_element = my_list[-1]
Также можно использовать отрицательные значения для срезов (slicing) списка, например:
my_list[-3:] # вернет последние три элемента списка
my_list[:-2] # вернет все элементы списка, кроме последних двух
my_list[::-1] # вернет список в обратном порядке
Но следует учесть, что если индекс отрицательный и его абсолютное значение больше или равно длине списка, будет возбуждено исключение IndexError.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Например, чтобы получить последний элемент списка my_list в Python, можно использовать следующую команду:
last_element = my_list[-1]
Также можно использовать отрицательные значения для срезов (slicing) списка, например:
my_list[-3:] # вернет последние три элемента списка
my_list[:-2] # вернет все элементы списка, кроме последних двух
my_list[::-1] # вернет список в обратном порядке
Но следует учесть, что если индекс отрицательный и его абсолютное значение больше или равно длине списка, будет возбуждено исключение IndexError.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5🤯3
Как просмотреть методы объекта?
Ответ:
Чтобы посмотреть все методы и атрибуты, связанные с определенным объектом в Python, можно использовать функцию dir(). Она принимает объект в виде аргумента и возвращает список имен всех атрибутов и методов объекта.
Например, если нужно увидеть все методы и атрибуты, связанные с объектом my_list, следующее:
my_list = [1, 2, 3]
print(dir(my_list))
Это выведет список всех методов и атрибутов, которые можно использовать с объектом my_list.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Например, если нужно увидеть все методы и атрибуты, связанные с объектом my_list, следующее:
my_list = [1, 2, 3]
print(dir(my_list))
Это выведет список всех методов и атрибутов, которые можно использовать с объектом my_list.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🤯1
Python полностью поддерживает ООП?
Ответ:
Да, Python является полностью объектно-ориентированной языком. Он поддерживает все основные принципы ООП: наследование, инкапсуляцию и полиморфизм.
В Python все объекты в явном виде являются экземплярами классов, и даже типы данных, такие как список или словарь, являются классами со своими методами и атрибутами.
Кроме того, Python поддерживает множественное наследование, который позволяет создавать новые классы, которые наследуют методы и атрибуты от нескольких родительских классов одновременно.
В целом, Python предоставляет множество инструментов для написания кода в объектно-ориентированном стиле, и это один из главных его преимуществ, особенно для написания крупных и сложных приложений.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
В Python все объекты в явном виде являются экземплярами классов, и даже типы данных, такие как список или словарь, являются классами со своими методами и атрибутами.
Кроме того, Python поддерживает множественное наследование, который позволяет создавать новые классы, которые наследуют методы и атрибуты от нескольких родительских классов одновременно.
В целом, Python предоставляет множество инструментов для написания кода в объектно-ориентированном стиле, и это один из главных его преимуществ, особенно для написания крупных и сложных приложений.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Как проверить файл .py на синтаксические ошибки, не запуская его?
Утилита py_compile, позволит проверить файл .py на наличие синтаксических ошибок без его запуска.
Используется py_compile очевидно:
открываем командную строку/терминал.
переходим в каталог, содержащий файл .py, который вы хотите проверить
выполняем: python -m py_compile yourfile.py
гдеyourfile.py – это имя файла, который вы хотите проверить.
Эта команда выполнит проверку файла и выведет описание любых синтаксических ошибок, которые были найдены, или пустой вывод, если ошибок нет.
Когда это может быть полезно? Например, если код большой и в процессе задействует много ресурсов, а нужно всего лишь удостовериться в его валидности.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Используется py_compile очевидно:
открываем командную строку/терминал.
переходим в каталог, содержащий файл .py, который вы хотите проверить
выполняем: python -m py_compile
где
Эта команда выполнит проверку файла и выведет описание любых синтаксических ошибок, которые были найдены, или пустой вывод, если ошибок нет.
Когда это может быть полезно? Например, если код большой и в процессе задействует много ресурсов, а нужно всего лишь удостовериться в его валидности.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯3🔥2
Для чего используется дандер-метод init?
Функция (дандер-метод, если точнее) init является конструктором класса, и она вызывается автоматически при создании нового экземпляра класса. init используется для инициализации атрибутов, которые будут принадлежать объектам, создаваемым с помощью класса.
Внутри функции init определяются атрибуты объекта, которые будут доступны через
ссылку на экземпляр, на который ссылается переменная self.
Например, пусть каждый экземпляр класса Person создаётся с атрибутами name и age:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person1 = Person("John", 30)
person2 = Person("Alice", 25)
print( person1.name ) # output: John
print(person2.age) # output: 25
Тут функция init инициализирует атрибуты name и age для каждого экземпляра, создаваемого с помощью класса Person.
Когда мы создаем новый объект, мы передаем эти аргументы в функцию init, чтобы инициализировать соответствующие атрибуты.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Внутри функции init определяются атрибуты объекта, которые будут доступны через
ссылку на экземпляр, на который ссылается переменная self.
Например, пусть каждый экземпляр класса Person создаётся с атрибутами name и age:
class Person:
def __init__(self, name, age):
self.age = age
person1 = Person("John", 30)
person2 = Person("Alice", 25)
print(
print(person2.age) # output: 25
Тут функция init инициализирует атрибуты name и age для каждого экземпляра, создаваемого с помощью класса Person.
Когда мы создаем новый объект, мы передаем эти аргументы в функцию init, чтобы инициализировать соответствующие атрибуты.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Python | Готовимся к собесам
Вопросы с собеседований для позиций Python-разработчиков, тесты, практика от синьора. Читай, чтобы прокачаться перед встречей
Подготовка к собесам для Frontend https://t.me/+Y8231d36XXo5YTk6
Ссылка на для друга https://t.me/+Dn9D2WZCvno5MGZi
Подготовка к собесам для Frontend https://t.me/+Y8231d36XXo5YTk6
Ссылка на для друга https://t.me/+Dn9D2WZCvno5MGZi
Что такое синхронный код?
Синхронный код – это код, который выполняется последовательно, один за другим, и блокирует выполнение других задач до его завершения. Это означает, что если у вас есть функция, которая занимает много времени на выполнение, и вы вызываете ее в основной программе, то выполнение программы заблокируется до завершения этой функции.
Примером синхронного кода в Python может служить следующий фрагмент, который содержит цикл while, обрабатывающий список элементов:
items = [1, 2, 3, 4, 5]
for item in items:
print(item)
Здесь цикл for будет обрабатывать каждый элемент в списке items последовательно, один за другим, и не будет переходить к следующему элементу, пока не завершится обработка текущего элемента.
Выполнение синхронного кода может занять много времени и может вызвать проблемы с производительностью, особенно когда код выполняет блокирующие операции, такие как чтение и запись файлов, обращение к сети, или поиск значений в базе данных. Для решения этой проблемы в Python используют асинхронное программирование с использованием конструкций async/await и библиотеки asyncio. Они позволяют выполнять несколько задач асинхронно, не блокируя выполнение других задач, и добиваться более высокой производительности.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Примером синхронного кода в Python может служить следующий фрагмент, который содержит цикл while, обрабатывающий список элементов:
items = [1, 2, 3, 4, 5]
for item in items:
print(item)
Здесь цикл for будет обрабатывать каждый элемент в списке items последовательно, один за другим, и не будет переходить к следующему элементу, пока не завершится обработка текущего элемента.
Выполнение синхронного кода может занять много времени и может вызвать проблемы с производительностью, особенно когда код выполняет блокирующие операции, такие как чтение и запись файлов, обращение к сети, или поиск значений в базе данных. Для решения этой проблемы в Python используют асинхронное программирование с использованием конструкций async/await и библиотеки asyncio. Они позволяют выполнять несколько задач асинхронно, не блокируя выполнение других задач, и добиваться более высокой производительности.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🤯2
Для чего нужен метод id()?
Метод id() используется для получения уникального целочисленного идентификатора (адреса в памяти) объекта. Этот идентификатор может быть использован для сравнения объектов, поскольку два объекта будут иметь одинаковый идентификатор только в том случае, если это один и тот же объект в памяти.
Например, если у вас есть две переменные, которые ссылаются на один и тот же объект, то их идентификаторы будут равны:
a = [1, 2, 3]
b = a
print(id(a)) # выведет адрес в памяти объекта a
print(id(b)) # выведет адрес в памяти объекта b
Однако, если у вас есть две переменные, которые ссылаются на разные объекты, их идентификаторы будут отличаться:
a = [1, 2, 3]
b = [1, 2, 3]
print(id(a)) # выведет адрес в памяти объекта a
print(id(b)) # выведет адрес в памяти объекта b (отличный от идентификатора a)
Использование метода id() может быть полезно при отладке или проверке, какие переменные ссылаются на один и тот же объект. Однако, в общем случае, использование метода id() не рекомендуется, поскольку это может быть неэффективным при работе с большим количеством объектов в памяти.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Например, если у вас есть две переменные, которые ссылаются на один и тот же объект, то их идентификаторы будут равны:
a = [1, 2, 3]
b = a
print(id(a)) # выведет адрес в памяти объекта a
print(id(b)) # выведет адрес в памяти объекта b
Однако, если у вас есть две переменные, которые ссылаются на разные объекты, их идентификаторы будут отличаться:
a = [1, 2, 3]
b = [1, 2, 3]
print(id(a)) # выведет адрес в памяти объекта a
print(id(b)) # выведет адрес в памяти объекта b (отличный от идентификатора a)
Использование метода id() может быть полезно при отладке или проверке, какие переменные ссылаются на один и тот же объект. Однако, в общем случае, использование метода id() не рекомендуется, поскольку это может быть неэффективным при работе с большим количеством объектов в памяти.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯2🔥1
Для чего используется ключевое слово yield?
Ключевое слово yield используется для создания генераторов.
Генератор – это функция, которая может возвращать последовательность значений используя инструкции yield вместо return. При каждом вызове инструкции yield генератор возвращает значение, после чего сохраняет свое состояние и приостанавливает свое выполнение до следующего вызова.
Это позволяет генерировать последовательности значений без необходимости создания и хранения всех значений в памяти, что может быть особенно полезно при работе с большими объемами данных. Кроме того, генераторы являются итерируемыми и могут использоваться в циклах for.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Генератор – это функция, которая может возвращать последовательность значений используя инструкции yield вместо return. При каждом вызове инструкции yield генератор возвращает значение, после чего сохраняет свое состояние и приостанавливает свое выполнение до следующего вызова.
Это позволяет генерировать последовательности значений без необходимости создания и хранения всех значений в памяти, что может быть особенно полезно при работе с большими объемами данных. Кроме того, генераторы являются итерируемыми и могут использоваться в циклах for.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1🤯1
Что такое контекстный менеджер?
Контекстный менеджер в Python – это объект, который определяет вход и выход из контекста с помощью методов enter() и exit().
Контекстный менеджер может быть использован в блоке with для выполнения конкретных действий при входе и выходе из блока. Например, контекстный менеджер может устанавливать и закрывать соединение с базой данных, блокировать и разблокировать файлы или временно изменять настройки системы.
Вот простой пример, демонстрирующий использование контекстного менеджера для работы с файлом:
with open('file.txt', 'r') as f:
data = f.read ()
В этом примере open() возвращает контекстный менеджер f. Когда блок with начинается, вызывается метод enter() контекстного менеджера, который открывает файл.
Затем выполняется код в блоке, который использует f для чтения данных из файла. При завершении блока with вызывается метод exit() контекстного менеджера, который закрывает файл.
Контекстные менеджеры в Python используются для обращения с ресурсами, которые должны быть корректно открыты и закрыты, включая файлы, сетевые соединения, блокировки и базы данных. Кроме того, их можно использовать для временной модификации состояния системы или окружения в блоках with.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Контекстный менеджер может быть использован в блоке with для выполнения конкретных действий при входе и выходе из блока. Например, контекстный менеджер может устанавливать и закрывать соединение с базой данных, блокировать и разблокировать файлы или временно изменять настройки системы.
Вот простой пример, демонстрирующий использование контекстного менеджера для работы с файлом:
with open('file.txt', 'r') as f:
data =
В этом примере open() возвращает контекстный менеджер f. Когда блок with начинается, вызывается метод enter() контекстного менеджера, который открывает файл.
Затем выполняется код в блоке, который использует f для чтения данных из файла. При завершении блока with вызывается метод exit() контекстного менеджера, который закрывает файл.
Контекстные менеджеры в Python используются для обращения с ресурсами, которые должны быть корректно открыты и закрыты, включая файлы, сетевые соединения, блокировки и базы данных. Кроме того, их можно использовать для временной модификации состояния системы или окружения в блоках with.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
Как сделать python-скрипт исполняемым в различных операционных системах?
Для того чтобы сделать Python-скрипт исполняемым в различных операционных системах, можно воспользоваться утилитой PyInstaller, которая позволяет упаковать скрипт в исполняемый файл для Windows, Linux и macOS.
Чтобы установить PyInstaller, можно выполнить следующую команду в командной строке:
pip install pyinstaller
После установки PyInstaller необходимо перейти в директорию с Python-скриптом и запустить утилиту с соответствующими параметрами для создания исполняемого файла. Например:
pyinstaller myscript.py --onefile
Эта команда создаст единый исполняемый файл myscript.exe (для Windows) или myscript (для Linux/macOS), который можно запустить на соответствующих операционных системах.
Если нужно создать исполняемый файл с определенными параметрами, можно воспользоваться другими параметрами PyInstaller, такими как --icon для добавления иконки, --name для задания имени исполняемого файла и т.д.
Но стоит отметить, что PyInstaller не является универсальным решением и возможна потребность в использовании других инструментов в зависимости от конкретной задачи и требований к исполняемому файлу.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Чтобы установить PyInstaller, можно выполнить следующую команду в командной строке:
pip install pyinstaller
После установки PyInstaller необходимо перейти в директорию с Python-скриптом и запустить утилиту с соответствующими параметрами для создания исполняемого файла. Например:
pyinstaller
Эта команда создаст единый исполняемый файл myscript.exe (для Windows) или myscript (для Linux/macOS), который можно запустить на соответствующих операционных системах.
Если нужно создать исполняемый файл с определенными параметрами, можно воспользоваться другими параметрами PyInstaller, такими как --icon для добавления иконки, --name для задания имени исполняемого файла и т.д.
Но стоит отметить, что PyInstaller не является универсальным решением и возможна потребность в использовании других инструментов в зависимости от конкретной задачи и требований к исполняемому файлу.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Эта книга рассказывает о написании безопасного кода на Python. Первая часть посвящена основам криптографии, включая проверку подлинности, симметричное и асимметричное шифрование. Вторая часть — это пошаговые инструкции для реализации типичных пользовательских сценариев, а третья — советы по защите от атак.
Все примеры кода основаны на реальных задачах разработчиков. Книга подойдет как новичкам, так и опытным программистам, стремящимся повысить безопасность своих сервисов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как создать класс без слова class?
Kласс можно создать без использования ключевого слова class, используя типы type или metaclass.
Например, следующий код определяет класс MyClass без использования ключевого слова class:
MyClass = type('MyClass', (), {'x': 42, 'foo': lambda self: self.x})
Этот код эквивалентен определению класса с использованием ключевого слова class:
class MyClass:
x = 42
def foo(self):
return self.x
Оба определения класса эквивалентны и создают объект класса MyClass. Но, честно, использование ключевого слова class читабельнее, хотя где-нибудь может пригодиться и type с metaclass.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Например, следующий код определяет класс MyClass без использования ключевого слова class:
MyClass = type('MyClass', (), {'x': 42, 'foo': lambda self: self.x})
Этот код эквивалентен определению класса с использованием ключевого слова class:
class MyClass:
x = 42
def foo(self):
return self.x
Оба определения класса эквивалентны и создают объект класса MyClass. Но, честно, использование ключевого слова class читабельнее, хотя где-нибудь может пригодиться и type с metaclass.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯2
Как перезагрузить импортированный модуль?
Чтобы перезагрузить импортированный модуль в Python, вы можете использовать функцию reload() из модуля importlib.
Вот как это сделать:
from importlib import reload
import module_name
reload(module_name)
Замените module_name на фактическое имя модуля, который вы хотите перезагрузить.
Это может быть полезно при разработке и тестировании модулей, но не рекомендуется использовать в производственном коде без серьезных причин.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Вот как это сделать:
from importlib import reload
import module_name
reload(module_name)
Замените module_name на фактическое имя модуля, который вы хотите перезагрузить.
Это может быть полезно при разработке и тестировании модулей, но не рекомендуется использовать в производственном коде без серьезных причин.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯3🔥2
Что такое дескрипторы? Есть ли разница между дескриптором и декоратором?
Дескрипторы – это объекты Python, которые определяют, как другие объекты должны вести себя при доступе к атрибуту. Дескрипторы могут использоваться для
реализации протоколов, таких как протокол доступа к атрибутам, протокол дескрипторов и протокол методов.
Декораторы – это функции Python, которые принимают другую функцию в качестве аргумента и возвращают новую функцию. Декораторы обычно используются для
изменения поведения функции без изменения ее исходного кода.
Разница между дескриптором и декоратором заключается в том, что дескрипторы используются для определения поведения атрибутов объекта, в то время как декораторы
используются для изменения поведения функций. Однако, декораторы могут использоваться для реализации протоколов дескрипторов.
Например, декоратор @property можно использовать для создания дескриптора доступа к атрибутам. Он преобразует метод класса в дескриптор, который позволяет
получать, устанавливать и удалять значение атрибута как обычный атрибут объекта.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
реализации протоколов, таких как протокол доступа к атрибутам, протокол дескрипторов и протокол методов.
Декораторы – это функции Python, которые принимают другую функцию в качестве аргумента и возвращают новую функцию. Декораторы обычно используются для
изменения поведения функции без изменения ее исходного кода.
Разница между дескриптором и декоратором заключается в том, что дескрипторы используются для определения поведения атрибутов объекта, в то время как декораторы
используются для изменения поведения функций. Однако, декораторы могут использоваться для реализации протоколов дескрипторов.
Например, декоратор
получать, устанавливать и удалять значение атрибута как обычный атрибут объекта.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯2🔥1
Почему всякий раз, когда python завершает работу, не освобождается вся память?
Python использует автоматическое управление памятью с помощью механизма сборки мусора, который освобождает память, занятую объектами, которые больше не
используются в программе. Однако, до того как механизм сборки мусора может освободить память объекта, все ссылки на этот объект должны быть удалены. Если в
программе остаются ссылки на объекты, которые больше не нужны, то эти объекты не будут удалены до окончания работы приложения.
Также может случиться, что размер объектов, которые использует программа, слишком велик для доступной оперативной памяти. В этом случае операционная система
может начать использовать файл подкачки, что может замедлить работу программы.
Если вы столкнулись с проблемой утечки памяти, то можно воспользоваться инструментами, такими как memory_profiler для Python, которые помогут выявить места, где
память не освобождается, и найти способы ее оптимизации.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
используются в программе. Однако, до того как механизм сборки мусора может освободить память объекта, все ссылки на этот объект должны быть удалены. Если в
программе остаются ссылки на объекты, которые больше не нужны, то эти объекты не будут удалены до окончания работы приложения.
Также может случиться, что размер объектов, которые использует программа, слишком велик для доступной оперативной памяти. В этом случае операционная система
может начать использовать файл подкачки, что может замедлить работу программы.
Если вы столкнулись с проблемой утечки памяти, то можно воспользоваться инструментами, такими как memory_profiler для Python, которые помогут выявить места, где
память не освобождается, и найти способы ее оптимизации.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯3👍2
Что такое wheels и eggs? В чём разница?
В Python wheels и eggs – это форматы пакетов для установки и дистрибуции пакетов с помощью утилиты управления пакетами pip.
Eggs был первоначально разработан как формат дистрибуции пакетов для Python, но был заменен wheels. В отличие от wheels, eggs могут содержать .pyc файлы, что может привести к проблемам при установке на другой платформе или версии Python.
Wheels – это новый формат дистрибуции пакетов, который был введен в Python 2.7. Он поддерживается большинством пакетов на PyPI и имеет множество преимуществ, например:
Он не содержит .pyc файлов, что снижает вероятность конфликтов.
Он легко переносится между платформами и версиями Python.
Он поддерживает сжатие библиотек и упрощает установку требований.
В целом, wheels считается более продвинутой и предпочтительной формой дистрибуции пакетов в Python.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Eggs был первоначально разработан как формат дистрибуции пакетов для Python, но был заменен wheels. В отличие от wheels, eggs могут содержать .pyc файлы, что может привести к проблемам при установке на другой платформе или версии Python.
Wheels – это новый формат дистрибуции пакетов, который был введен в Python 2.7. Он поддерживается большинством пакетов на PyPI и имеет множество преимуществ, например:
Он не содержит .pyc файлов, что снижает вероятность конфликтов.
Он легко переносится между платформами и версиями Python.
Он поддерживает сжатие библиотек и упрощает установку требований.
В целом, wheels считается более продвинутой и предпочтительной формой дистрибуции пакетов в Python.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🤯1
Когда важно, чтобы программа работала быстро и экономила память, на помощь приходят алгоритмы. Книга Джорджа Хайнемана — это практическое руководство, которое кратко и четко объясняет ключевые алгоритмы, применимые в большинстве языков программирования.
Она не требует университетского образования, в отличие от многих учебников с упором на теорию. В книге даны готовые решения, написанные на Python, которые сразу можно использовать для повышения эффективности программ. Алгоритмы сопровождаются иллюстрациями, а исходные коды доступны в открытом доступе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое менеджер пакетов? Какие менеджеры пакетов вы знаете?
Менеджер пакетов – это инструмент, который позволяет управлять установкой, обновлением и удалением библиотек и зависимостей в проектах на языке Python.
Встречайте, вот наиболее популярные менеджеры пакетов Python:
pip – это стандартный менеджер пакетов Python. Он позволяет устанавливать пакеты из Python Package Index (PyPI) и других источников, а также управлять зависимостями проекта.
conda – это менеджер пакетов и среда управления, который позволяет управлять пакетами и зависимостями для проектов на Python, а также для других языков программирования и платформ.
easy_install – инструмент для установки и управления пакетами Python, который был стандартным до выпуска Python 3. Используется редко в настоящее время.
poetry – новый менеджер пакетов, предназначенный для замены в некоторой степени pip и virtualenv.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Встречайте, вот наиболее популярные менеджеры пакетов Python:
pip – это стандартный менеджер пакетов Python. Он позволяет устанавливать пакеты из Python Package Index (PyPI) и других источников, а также управлять зависимостями проекта.
conda – это менеджер пакетов и среда управления, который позволяет управлять пакетами и зависимостями для проектов на Python, а также для других языков программирования и платформ.
easy_install – инструмент для установки и управления пакетами Python, который был стандартным до выпуска Python 3. Используется редко в настоящее время.
poetry – новый менеджер пакетов, предназначенный для замены в некоторой степени pip и virtualenv.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1🤯1
Что такое файлы .pth?
Файлы с расширением .pth – это файлы, которые могут быть использованы для добавления директорий в путь поиска модулей Python. Директивы .pth выполняются при запуске интерпретатора Python и добавляют определенные каталоги в переменную sys.path. Это удобно, когда нужно импортировать модули из нестандартных директорий без необходимости переноса файлов в директории по умолчанию. Использование директив .pth достаточно распространено в мире Python и они встречаются в различных средах разработки и фреймворках, таких как PyTorch.
Файлы .pth могут быть также использованы злоумышленниками для внедрения вредоносного кода в систему Python, так как они могут изменять список каталогов, в которых выполняется поиск модулей Python. Поэтому необходимо быть внимательными при работе с такими файлами и использовать только те файлы .pth, которые вы знаете и доверяете.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Файлы .pth могут быть также использованы злоумышленниками для внедрения вредоносного кода в систему Python, так как они могут изменять список каталогов, в которых выполняется поиск модулей Python. Поэтому необходимо быть внимательными при работе с такими файлами и использовать только те файлы .pth, которые вы знаете и доверяете.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
Что делает флаг PYTHONOPTIMIZE?
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Флаг -O или PYTHONOPTIMIZE в Python используется для оптимизации скомпилированного кода, что может привести к ускорению выполнения программы. Этот флаг удаляет отладочную информацию, отключает asset checks, asserts и отладочные проверки.
Стандартная оптимизация -O удаляет docstrings из скомпилированного byte-code, а также удаляет assert statements. С флагом -OO удаляются все docstrings в модулю (включая те, которые не соответствуют многострочным строкам) и также удаляются assert statements.
Запуск интерпретатора Python с флагом -O может уменьшить размер скомпилированного кода и сократить потребление памяти, что может привести к ускорению работы программы. Однако, для большинства приложений, эта оптимизация может не иметь значимого влияния на производительность.
Например, для запуска скрипта с флагом -O, можно использовать следующую команду в командной строке:
python -O my_script.py
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🤯2