Алексей Лобарев. Основы python. VCV собеседование junior python developer.

preview_player
Показать описание
Очень хорошо отвечал на технические вопросы. Почти эталон.

Всем спасибо за просмотр! Ставьте 👍 если Вам понравилось видео!
Нажимайте 🔔 чтобы видеть наши новые выпуски. Благодарность за подписку

🔔ПОДПИСЫВАЙТЕСЬ:🔔
Рекомендации по теме
Комментарии
Автор

Спасибо за разбор! Обязательно подтяну генераторы и декораторы, обычно, когда волнуюсь говорю больше, чем нужно, собственно так и
P.S. был очень удивлен, когда увидел себя на превью)))

AlexeyLobarev
Автор

Отличное видео, сам так же отвечал на эти вопросы во время просмотра, нашёл пробелы в знаниях

andrey
Автор

13 вопрос, декоратор @wraps все же находится не в "itertools" а в "functools"

ДмитрийВасильевич
Автор

Изменяемые/неизменяемые типы данных (Это я так готовился к собесам и писал статьи на каждый вопрос)

Python имеет четыре встроенных структуры данных, которые можно использовать для хранения коллекции объектов:
список, кортеж, словарь, множество

Список- упорядоченная изменяемая коллекция объектов
Кортеж - упорядоченная неизменяемая коллекция объектов
Словарь — неупорядоченная изменяемая коллекция объектов
Множество — неупорядоченный набор не повторяющихся элементов


Изменяемые (mutable) типы данных:

list, set, dict

Неизменяемые (immutable) тип данных:

int, float, str, tuple, bool, None, frozenset


Почему неизменяемые типы данных так называются?

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

Например, создадим переменную x

x = 1

Используем встроенную функцию id() чтобы посмотреть идентификатор объекта
print(id(x)) —-»> 1760195707120

Попробуем изменить значение переменной x

x = 2

Проверим id переменной снова

print(id(x)) —-»> 1760195707152

Как видим, идентификатор изменился! То есть переменная х это лишь ссылка в первом случае на объект с числовым значением 1, а во втором случае на объект с числовым значением 2. В данном случае мы просто переместили ссылку x на другой объект. Объект с числом 1 перестал существовать так как на него больше нет ссылок.

Фактически, мы не изменили объект, а просто пересоздали его. Адрес в памяти соответственно тоже изменился.

Тоже самое и со строками, создадим строку с заведомо ошибкой

my_str = 'Пишем кот'

Мы хотели создать стоку 'Пишем код', но ошиблись

Давайте попробуем изменить последнюю букву в последовательности

my_str[-1] = 'д'

Получим исключение:

TypeError: 'str' object does not support item assignment

Неизменяемые типы не подлежат обновлению!


Что же с изменяемыми типами?

Возьмем список

lst = [1, 2, 3]

Посмотрим идентификатор lst

print(id(lst)) —-» 2777451392128

Добавим в список новый элемент:

lst.append(4)

Теперь список выглядит вот так – »> lst = [1, 2, 3, 4]

print(id(lst)) —-» 1841649085568

Объект обновился, идентификатор и адрес в памяти не изменились

PythonDevelopment
Автор

А мне понравилось =)) Если бы я был на его месте я бы наверно наболтал лишнего что стыдно было бы смотреть )))) Но это наоборот хорошо. Когда-нибудь, когда-нибудь

PythonDevelopment
Автор

А разве булевые значения не относятся к типам данных?

andrey
Автор

Меня одного интересует, что там за закладка на хабре "Один совет, бл.."

purple_owl
Автор

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

luckytima