#interview, #python
По моему опыту, ни одно собеседование на python-разработчика независимо от уровня не обходится без вопроса, про изменяемые/неизменяемые типы данных 😮.
Звучать вопрос может по-разному:
• Какие типы данных есть в python?
• Какие типы данных изменяемые, а какие неизменяемые?
На интервью от вас ждут четкого ответа:
Все в python является объектом, объекты могут быть изменяемые и неизменяемые.
К неизменяемым относятся:
• численные значения (int, float),
• логический тип (bool),
• кортежи (tuples)
• строки (strings). Тут не должно быть путаницы, в питоне строки – это не массив символов, как в других языках программирования. При добавлении символа в конец строки, создается новый объект! Многие интервьюеры любят подловить на этой теме.
К изменяемым относятся:
• списки (list)
• словари (dict)
• множества (set)
По моему опыту, ни одно собеседование на python-разработчика независимо от уровня не обходится без вопроса, про изменяемые/неизменяемые типы данных 😮.
Звучать вопрос может по-разному:
• Какие типы данных есть в python?
• Какие типы данных изменяемые, а какие неизменяемые?
На интервью от вас ждут четкого ответа:
Все в python является объектом, объекты могут быть изменяемые и неизменяемые.
К неизменяемым относятся:
• численные значения (int, float),
• логический тип (bool),
• кортежи (tuples)
• строки (strings). Тут не должно быть путаницы, в питоне строки – это не массив символов, как в других языках программирования. При добавлении символа в конец строки, создается новый объект! Многие интервьюеры любят подловить на этой теме.
К изменяемым относятся:
• списки (list)
• словари (dict)
• множества (set)
👍10🔥7💯4❤1🤔1
Python ментор
#interview, #python По моему опыту, ни одно собеседование на python-разработчика независимо от уровня не обходится без вопроса, про изменяемые/неизменяемые типы данных 😮. Звучать вопрос может по-разному: • Какие типы данных есть в python? • Какие типы данных…
#interview, #python
Зачем нужно знать про изменяемость объектов в python?
Сразу закономерный вопрос: “зачем вообще все это нужно?” И опытные интервьюеры также могут спросить это у вас 🧐. Мне очень нравится этот вопрос, он показывает, что человек не просто зазубрил правильный ответ про типы данных, а понимает почему это важно ☝️!
Без лишних слов! Этот пример иллюстрирует все очень наглядно. Смотри на картинки!
Тут сразу несколько важных вещей:
• Изменяемые типы данных передаются в функцию по ссылке, а значит функция их может модифицировать!
• Любой глобальный изменяемый объект может измениться во время выполнения программы и с этим нужно быть очень аккуратным!
На собеседовании такого ответа будет боле чем достаточно 😉
Зачем нужно знать про изменяемость объектов в python?
Сразу закономерный вопрос: “зачем вообще все это нужно?” И опытные интервьюеры также могут спросить это у вас 🧐. Мне очень нравится этот вопрос, он показывает, что человек не просто зазубрил правильный ответ про типы данных, а понимает почему это важно ☝️!
Без лишних слов! Этот пример иллюстрирует все очень наглядно. Смотри на картинки!
Тут сразу несколько важных вещей:
• Изменяемые типы данных передаются в функцию по ссылке, а значит функция их может модифицировать!
• Любой глобальный изменяемый объект может измениться во время выполнения программы и с этим нужно быть очень аккуратным!
На собеседовании такого ответа будет боле чем достаточно 😉
❤9👍6😱3🔥2
Python ментор
#interview, #python Зачем нужно знать про изменяемость объектов в python? Сразу закономерный вопрос: “зачем вообще все это нужно?” И опытные интервьюеры также могут спросить это у вас 🧐. Мне очень нравится этот вопрос, он показывает, что человек не просто…
#interview #python
Как понять, тип данных изменяемый или неизменяемый?
Это мой любимый вопрос по этой теме 🤓
Тут важно знать одну вещь: в python существует функция
• Попробуем применить ее на неизменяемом объекте типа
Видите 👀? Адрес объекта поменялся! Это значит, что
• Теперь изменяемый тип данных
Ага! А тут адрес не изменился! Вывод достаточно очевиден: этот тот же самый объект с тем же самым местом в памяти, и изменился сам объект, а не его адрес!
Вот и все, теперь вы полностью готовы к любым вопросам на собеседовании про типы данных в python, удачи 🍀
Как понять, тип данных изменяемый или неизменяемый?
Это мой любимый вопрос по этой теме 🤓
Тут важно знать одну вещь: в python существует функция
id()
, которая возвращает идентификатор объекта в виде целого числа. Это целое число является адресом места хранения объекта в памяти.• Попробуем применить ее на неизменяемом объекте типа
int
:>>> num = 1
>>> id(num)
4367712496
>>> num += 1
>>> id(num)
4367712528
Видите 👀? Адрес объекта поменялся! Это значит, что
num
после прибавления 1 теперь совершенно другой объект, с другим местом в памяти 😮! • Теперь изменяемый тип данных
list
:>>> nums = [1]
>>> id(nums)
4373021952
>>> nums += [1]
>>> id(nums)
4373021952
Ага! А тут адрес не изменился! Вывод достаточно очевиден: этот тот же самый объект с тем же самым местом в памяти, и изменился сам объект, а не его адрес!
Вот и все, теперь вы полностью готовы к любым вопросам на собеседовании про типы данных в python, удачи 🍀
👍8💯7🔥3❤2🤝1
#interview, #python, #asyncio, #multiprocessing, #multithreading
Совсем недавно я собеседовал трех джунов и, конечно, спрашивал про асинхронность. Спойлер: никто не смог преодолеть этот вопрос, хотя, ребята толковые, и явно что-то читали. Я понял, что у многих людей нет стройной картины, и возникает много проблем, которые даже не касаются асинхронности напрямую. Вот список проблемных тем:
- разница между потоком и процессом
- что такое io-bound и cpu-boud задачи
- разница между многопоточность и асинхронностью
- Да кто этот ваш GIL? И где он тут?
- Ну и напоследок, что же это за асинхронность такая? С реальными примерами!
Все это мы с вами разберем в ближайшее время, так, чтобы вы поняли, как устроено конкурентное программирование в python. Ну и конечно, все темы я разбираю с позиции человека, который проходит интервью, чтобы вы, смогли извлечь максимум пользы!
Совсем недавно я собеседовал трех джунов и, конечно, спрашивал про асинхронность. Спойлер: никто не смог преодолеть этот вопрос, хотя, ребята толковые, и явно что-то читали. Я понял, что у многих людей нет стройной картины, и возникает много проблем, которые даже не касаются асинхронности напрямую. Вот список проблемных тем:
- разница между потоком и процессом
- что такое io-bound и cpu-boud задачи
- разница между многопоточность и асинхронностью
- Да кто этот ваш GIL? И где он тут?
- Ну и напоследок, что же это за асинхронность такая? С реальными примерами!
Все это мы с вами разберем в ближайшее время, так, чтобы вы поняли, как устроено конкурентное программирование в python. Ну и конечно, все темы я разбираю с позиции человека, который проходит интервью, чтобы вы, смогли извлечь максимум пользы!
❤11👍7🔥5🤩1
Python ментор
#interview, #multithreading Пришло время для примеров, и начнем с того, как применять многопоточность! В Python, для этого обычно используется модуль threading, однако в большинстве случаев более удобным выбором будет использовать concurrent.futures. Давайте…
#python, #multiprocessing
За многопроцесность, в python отвечает модуль
Внимание на картинки❗️У нас есть какая-то задача
На первой картинке мы просто выполняем эту функцию 2 раза последовательно.
А на второй картинке пользуемся
В данном случае второй код работает примерно в 2 раза быстрее, проверьте сами! Это происходит потому что потому что задачи выполняются параллельно и независимо друг от друга!
Буду с вами честен, на практике этот модуль удается применить крайне редко, лично я помню только 2 случая за 6 лет, когда я смог таким образом ускорить программу. Но это не значит, что модуль multiprocessing бесполезен! Распространенный пример: запустить какой-то процесс в фоне, чтобы не блокировать сложной cpu-bound задачей ваш код. Я покажу вам супер классный пример использования процессов в питоне, когда мы будем разбирать асинхронность!
За многопроцесность, в python отвечает модуль
multiprocessing
, ничего устанавливать не надо, просто импортируем.Внимание на картинки❗️У нас есть какая-то задача
cpu_bound
, она считает сумму всех чисел от 0 до number и нагружает процессор.Циклы и математические операции - это все cpu-bound задачи. В самом по себе цикле, нет ничего необычного и это не должно стать проблемой для вашего компьютера. Но если в цикле больше 100 миллиона итераций (как в примере) выполнение такой функци может занять существенное время!На первой картинке мы просто выполняем эту функцию 2 раза последовательно.
А на второй картинке пользуемся
multiprocessing.Pool
он, создает несколько процессов (регулируется параметром processes
) и каждый процесс выполняет свою cpu_bound
задачку.В данном случае второй код работает примерно в 2 раза быстрее, проверьте сами! Это происходит потому что потому что задачи выполняются параллельно и независимо друг от друга!
Буду с вами честен, на практике этот модуль удается применить крайне редко, лично я помню только 2 случая за 6 лет, когда я смог таким образом ускорить программу. Но это не значит, что модуль multiprocessing бесполезен! Распространенный пример: запустить какой-то процесс в фоне, чтобы не блокировать сложной cpu-bound задачей ваш код. Я покажу вам супер классный пример использования процессов в питоне, когда мы будем разбирать асинхронность!
👍12💯3🤝3👨💻1