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

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

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

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

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
Инкапсуляция

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

Инкапсуляция в 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
Что выведет код сверху?
Anonymous Quiz
63%
2345
4%
55
16%
77
17%
7
👍36🤔24🏆8🎉4😢3🍾2🆒2
Узнаем расстояние между городами

Геодезическое расстояние – это длина кратчайшего пути между двумя точками на любой поверхности Земли. В следующем примере мы покажем, как пользователь может вычислить геодезическое расстояние на основе данных широты и долготы.

В нашем примере мы узнаем, ято расстояние между городами Нью-Йорк и Техас 2507 километров.
👍174🎉2😱1
Узнаем в какой части света находится страна

countryinfo - модуль Python для возврата данных о странах, информации ISO и штатах/провинциях внутри них.

Установка пакета - pip install countryinfo.

Документацию пакета можно найти здесь.
👍24🎉5😱21😢1
Кто быстрее создаёт списки в Python, list() или []

В процессе написания очередной программы задумался над тем, какой способ создания списков в Python работает быстрее. Большинство моих знакомых используют квадратные скобки. А некоторые совсем забыли о существовании функции list(). Предлагаю Вашему вниманию небольшое исследование.

Смотреть статью
👍11😢1
#Вопросы_с_собеседования

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

Ответ:
Данный код выдаст в виде результата пустой список [], а ошибка IndexError не возникнет.

Как известно, попытка доступа к элементу списка с использованием индекса, превышающего число элементов (например, операция list[10] в списке выше), приводит к ошибке IndexError. Однако, попытка получить доступ к срезу списка с начальным индексом, превышающем количество элементов в списке, не приведет к IndexError и просто вернет пустой список.

Особенно неприятным это обстоятельство делает то, что оно может привести к ошибкам, которые действительно трудно отследить, поскольку во время выполнения кода не возникает никаких ошибок.
👍46🎉9😱71🔥1
Получаем формы сайта

С помощью пакета mechanize легко получить формы сайта для последующего входа в аккаунт или других действий.

Создаём объект браузера и с помощью функции forms возвращаем все формы.

Документация пакета находится здесь.
👍23