Python Learning
34.6K subscribers
1.91K photos
8 videos
7 files
913 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://yangx.top/+I7jrAQKR5xAyYTAy

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

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
#Вопросы_с_собеседования

Что выведет код с картинки?

В любом замыкании в Python переменные связываются по имени. Таким образом, в приведённой выше строке кода будет выведено следующее: [2, 2, 2].

Если бы вы хотели, чтобы вывод был [0, 1, 2], то выход из ситуации — создание отдельной функции или передача аргументов по их имени.
flist = []
for i in range(3):
flist.append(lambda i = i : i)
answer = [f() for f in flist]
print(answer)
.
👍24🤔122
Определяем тип изображения с помощью Python

Установка модуля - pip install imghdr

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

Подробнее можно почитать здесь.
🎉17👍9🤔2😢1
🤔12👍3🔥1
Что выведет код сверху?
Anonymous Quiz
32%
0
10%
4
19%
5
39%
Error
🤔29😱11👍7
👍13🎉52🏆1
Обрезаем фотографии с помощью Python

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

Координаты обрезанной поверхности представлены диагональными координатами. При этом первые две точки находятся (x, y) от верхней левой диагональной точки, а следующие две точки (x2, y2) также являются диагональной точкой снизу справа.

Фотографии до и после изменения изображения представлены в посте выше.
👍17🎉4
Инкапсуляция

Инкапсуляция — ограничение доступа к составляющим объект компонентам (методам и переменным). Инкапсуляция делает некоторые из компонент доступными только внутри класса.

Инкапсуляция в Python работает лишь на уровне соглашения между программистами о том, какие атрибуты являются общедоступными, а какие — внутренними.

Одиночное подчеркивание в начале имени атрибута говорит о том, что переменная или метод не предназначен для использования вне методов класса, однако атрибут доступен по этому имени.

Двойное подчеркивание в начале имени атрибута даёт большую защиту: атрибут становится недоступным по этому имени. Однако полностью это не защищает, так как атрибут всё равно остаётся доступным под именем _ИмяКласса__ИмяАтрибута.
👍36
#Вопросы_с_собеседования

Что будет в результате выполнения данного кода?

Ответ:
list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']

Объяснение:
Многие могут ошибочно предположить, что list1 будет равен [10], а list3 будет равен ['a'], думая, что всякий раз при вызове функции extendList аргумент list будет равен значению по умолчанию [].

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

Таким образом, list1 и list3 имеют дело с одним и тем же списком по умолчанию, в то время как list2 использует пустой список, переданный ему во втором аргументе.
👍24
Получаем информацию о системе своего компьютера с помощью Python

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

Установка модуля - pip install platform

Подробнее можно почитать здесь.
👍25🎉8🆒1
#Вопросы_с_собеседования

Что будет в результате выполнения данного кода?

Ответ:
Результатом выполнения данного кода будет [6, 6, 6, 6], а не [0, 2, 4, 6].

Это объясняется тем, что замыкания в Python работают по принципу позднего связывания. Это означает, что значения переменных, используемых в замыканиях, ищутся во время вызова внутренней функции. Поэтому, когда вызывается любая из функций, возвращаемых multipliers(), значение i ищется исключительно в области видимости этой функции в данный момент. А значение i, вне зависимости от того, какая из функций вызывается, после завершения цикла for всегда равно 3. Таким образом, каждая возвращаемая функция умножает значение, которое ей передано, на 3, а поскольку в приведенном выше коде передается значение 2 , все они возвращают значение 6 (то есть 3 x 2).
👍28🤔7
This media is not supported in your browser
VIEW IN TELEGRAM
Как выглядело бы Московское метро в трехмерном мире

Смотреть статью
🔥37😱8🎉8👍2😢2
#Вопросы_с_собеседования

Какие нюансы есть в использовании чисел как ключей?

Числовые ключи в словарях подчиняются правилам сравнения чисел. Таким образом, int(1) и float(1.0) считаются одинаковым ключом. Однако из-за того, что значения типа float сохраняются приближенно, не рекомендуется использовать их в качестве ключей.
👍19🎉7
Что выведет код сверху?
Anonymous Quiz
47%
True
42%
False
11%
Error
🎉29👍11😱3🤔2
8 технологий, которые должен знать каждый Python-разработчик

Джентльменский набор пайтон-разработчика, который пригодится вне зависимости от того, куда вы пойдете: в инжиниринг, машинное обучение или бэкенд-разработку.

Смотреть статью
👍19🔥51
#Вопросы_с_собеседования

Что значит *args, **kwargs? И зачем нам их использовать?

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

**kwargs используется, когда мы не знаем, сколько аргументов ключевых слов будет передано, а также он может быть использован для передачи значений словаря в качестве аргументов ключевых слов. Идентификаторы args и kwargs необязательны, вы можете изменить их на другие, типа *другой **пример, но лучше использовать имя по умолчанию.
👍20🎉7🤔5
Функция divmod()

Функция divmod() возвращает кортеж, содержащий частное и остаток. Не поддерживает комплексные числа. Со смешанными типами операндов применяются правила для двоичных арифметических операторов.

Для целых результат аналогичен (a // b, a % b).
👍265😢2🎉2🍾2