Собеседование Python разработчика

  Рет қаралды 17,363

TeachMeSkills Школа программирования

TeachMeSkills Школа программирования

Күн бұрын

Пікірлер: 40
@nerdizay
@nerdizay 4 ай бұрын
Зачем кортежи обидели, кортежи могут быть ключами словарей и быть внутри множества, а список ни того ни другого не может (это про гибкость)
@Andrewlone174
@Andrewlone174 11 ай бұрын
Изучаю Python, было интересно послушать .
@teachmeskills
@teachmeskills 11 ай бұрын
Спасибо)
@How_is-x5b
@How_is-x5b 8 ай бұрын
Наш человек)
@makspuzankov0057
@makspuzankov0057 8 ай бұрын
Спасибо за полезную информацию!
@teachmeskills
@teachmeskills 8 ай бұрын
И вам спасибо за фидбек
@denisbalyasnikov7185
@denisbalyasnikov7185 16 күн бұрын
Половина коментов в стиле: "Эээ..у кортежа можно брать срез, ты че дядь!?". Технически можно, как у любой последовательности, но в промышленном коде так никто не делает...вот и оговорился человек, у которого опыта больше, чем многим комментаторам лет отроду)
@ДенисАхметов-т4д
@ДенисАхметов-т4д 6 ай бұрын
У кортежей можно брать срезы. Как и строк (строки тоже неизменяемый тип данных). Просто срез возвращает новый объект
@hardline_fc
@hardline_fc 8 ай бұрын
Крутой чувак базу выдает. Лол меня всегда умиляют разные "разработчики" которые выбрали узконаправленный легчайший кал для изучения, аля руби, джс, тд, и тявкают на питон. Джил ко-ко-ко, управление памятью куд-ку-дах. Дохера веб-макаки треды открывают в своем браузере на джаваскрипте, или менеджерят память побитно на руби. Это как терпила которого все всегда унижали, придет и с нифига начнет на тебя гнать, чтобы самоутвердиться.
@knarg4682
@knarg4682 8 ай бұрын
13:20 "кортеж отличается от списка тем, что из него невозможно сделать срез" Штопрастити?... >>> tpl = (1, 2, 3, 4, 5, 'a', 'b') >>> tpl_2 = tpl[2:6] >>> tpl_2 (3, 4, 5, 'a') Хоть обсрезайся до посинения. Хоть скобками, хоть слайсом. Тем более что даже из списка срез не "берётся", а КОПИРУЕТСЯ, "в чём отличие, брат? В правде или в дЕньгах?.." Равно как и из строки. Срез всегда только копируется и никак иначе это не происходит. "А ты точно сантехник?.." Шо-то синьор из своего поднебесья уже вообще на земле мышей не ловит. Вот для того, уважаемые радиослушатели, и нужны джуниоры. И будут нужны. Потому что эти прокачанные и просветлённые, по их же словам, "уже не всё из основ помнят", а делать это тем не менее как требовалось, так и будет требоваться. И никакой GPT в этом не поможет, проверял уже раз 50, нафиг, нафиг, этот придурок даже сам на лету придумывает несуществующие "библиотеки", из которых якобы берёт команды, а в двух постах подряд сам себе противоречит на все 100% и оба раза неправильно. Ну и кому не лень, измерьте скорость линейного считывания данных (кортеж быстрее почти в полтора раза) и поиск индекса по значению/значения по индексу (список быстрее процентов на 20-30), особенно на коллекциях длиной в миллионы и состоящих из разных типов данных. Разница между ними есть, и немалая, для разных задач есть свой оптимальный выбор. Про функции вас здесь откровенно дурят. Да, это изолированный осмысленный блок кода. Как и класс. Как и файл. Как и модуль. Но такое определение верно только до первого вызова. С этого момента функция -- ПРОСТРАНСТВО ИМЁН, она инициировалась, оживила весь свой внутренний механизм и в таком виде висит в памяти не "до выдачи результата", а до самого окончания работы кода либо пока её принудительно не удалить командой del. И все последующие обращения происходят уже не к коду "строка за строкой", а именно к этому пространству, это уже самостоятельная сущность, как и любая встроенная питоновская команда. Играйтесь: import inspect def dec(color=7, /): def layer(fnc): def inner(*args, **kwargs): res = fnc(*args, **kwargs) for x in (s for s in dir(res)): xx = getattr(res, x) if callable(xx) and inspect.isfunction(xx): inner.cnt += 1 print(f"{inner.cnt} {x = }") setattr(res, x,\ lambda xx=xx: f"\033[1;3;3{color}m{xx()}\033[0m") print(f"{res.__name__!a}") return res inner.cnt = 0 print("starting inner:", fnc.__name__) return inner print("starting layer") return layer @dec(2) def outer(a): def inner_1(): def self(): return f"Value: {a}" def isiter(): if "__iter__" in dir(a): try: return f"{len(a) = }" except TypeError: return f"{type(a)} is iterable but has no len" return f"{a} is not iterable" inner_1.self = self inner_1.isiter = isiter inner_1() return inner_1 c = outer(4) d = outer(range(7)) e = outer((x for x in "abcd")) print(c.self()) print(c.isiter()) print(d.self()) print(d.isiter()) print(e.self()) print(e.isiter()) c.f = 'tra-la-la' print(c.f) Точно так же фабрика создания объектов путём клонирования вложенного пространства имён. Точно так же атрибуты и методы у каждого экземпляра. И всё это живёт столько, сколько родина прикажет.
@mikhailtokarev4633
@mikhailtokarev4633 Жыл бұрын
Классный гость :), наверное один из самых сдержанных у вас на канале.
@teachmeskills
@teachmeskills Жыл бұрын
Спасибо большое!)
@Жак-э7э
@Жак-э7э 2 ай бұрын
В смысле "у кортежа нельзя взять срез"? И у строки, и у кортежа можно взять срез. В чем проблема?
@kodunaiff3835
@kodunaiff3835 10 ай бұрын
крутой гость, интересно рассказывает и доходчиво.
@borismish3017
@borismish3017 10 ай бұрын
Про сборщик мусора ответ слишком простой, еще бы неплохо было рассказать про разрешение циклических ссылок. Про дикты - хеш таблицы и коллизии. Кстати интересный вопрос, который я спрашиваю на собесах, и самое интересное мало кто знает. Какая есть встроенная структура данных, аналогичная словарю.
@ВладиславБаранов-с2р
@ВладиславБаранов-с2р 9 ай бұрын
И какая же это структура данных? Не нашел в документации
@borismish3017
@borismish3017 9 ай бұрын
@@ВладиславБаранов-с2р set - это по сути словарь, но у которого ключи последовательность чисел от 0
@ВладиславБаранов-с2р
@ВладиславБаранов-с2р 9 ай бұрын
@@borismish3017 спасибо за ответ, погуглил, значениями множества могут быть только хешируемые типы данных, а у словаря -- изменяемыми. Странно конечно.
@maesthrow
@maesthrow 8 ай бұрын
​@borismish3017 set - это словарь, у которого ключи и есть значения множества, а значения этих ключей - это один и тот же фиктивный объект (просто экземпляр object), который вообще не используется. Как раз это и объясняет почему значениями множества могут быть только хешируемые типы, т.к. это по сути ключи внутреннего словаря и так реализуется уникальность элементов в set, а у самого словаря значениями могут быть уже любые типы
@БогданАтрошенко-в9у
@БогданАтрошенко-в9у 4 ай бұрын
пистолет с глушителем))) признавайтесь тоже проходили курс по python для профессионалов на stepik?
@eeluxa
@eeluxa 8 ай бұрын
То есть на джуна проходит?
@quansumonner
@quansumonner Жыл бұрын
35:06 - достать элемент по индексу из dict в python, чего Б....???? Может по ключу?! 35:19 - получение элемента по индексу в list - O(1), а вот поиск по List'y - O(n). А упоминать коллизию и etc. Лучше не смотреть полностью, а то с ума сойду.
@How_is-x5b
@How_is-x5b 8 ай бұрын
Всё правильно, ато разобьёшь свой хрупкий мозг и растеряешь последние мозги
@quansumonner
@quansumonner 8 ай бұрын
@@How_is-x5b Это оскорбление в мой адрес или что? sorry
@vonderklaas
@vonderklaas Ай бұрын
Судя по таймкодам ты уже практически все просмотрел 😂
@РоманОсипов-у1з
@РоманОсипов-у1з 11 ай бұрын
Так получилось что видео начал смотреть не с начала, а с 13 минуты...и как получается что у tuple нельзя сделать срез? точно также делается как у списка. кортежы быстрее, под них выделяется меньше памяти. дальше смотреть не стал, сорян.
@КоляБереговой-с4и
@КоляБереговой-с4и 9 ай бұрын
Было сказано, что под кортежи быстрее
@MyFearIsMyBlue
@MyFearIsMyBlue 8 ай бұрын
Смысл ответа в том, что ты не можешь взять полкортежа в отличии от половины списка. Половина списка будет реально срезом списка, а "половина" тупла будет новым туплом.
@РоманОсипов-у1з
@РоманОсипов-у1з 8 ай бұрын
@@MyFearIsMyBlue что значит "реально срезом списка"? срезы всегда возвращают новый объект, неважно срез чего вы делаете.
@How_is-x5b
@How_is-x5b 8 ай бұрын
Ну и иди отсюда, всем плевать
@Interestingworld-vc8sx
@Interestingworld-vc8sx 6 ай бұрын
Уже подозрительно,что ты с 13 минуты залип😂
@Alllexxx11
@Alllexxx11 Жыл бұрын
Вы меня, конечно, извините, и кто я такой что бы Александру как человеку с многолетним опытом рассказывать как правильно. Но есть путаница в терминологии. Пайтон он же и есть со СТРОГОЙ типизацией, просто она ДИНАМИЧЕСКАЯ
@teachmeskills
@teachmeskills Жыл бұрын
Спасибо за замечание! Принимаем все)
@How_is-x5b
@How_is-x5b 8 ай бұрын
Строгая типизация не для тебя, она под капотом происходит и как и многое другое в питоне, так что расслабь булки никто не поругает если просто скажешь что у питона динамическая типизация
@VaeV1ct1s
@VaeV1ct1s 6 ай бұрын
Если бы из ролка вырезали все цитаты персонажа справа - было бы на много лучше. В остальном ролик понравился
@teachmeskills
@teachmeskills 6 ай бұрын
извините, "персонаж" справа пока останется. придется терпеть)
@high_fly_bird
@high_fly_bird 6 ай бұрын
Спасибо за качественные и лаконичные ответы!
@teachmeskills
@teachmeskills 6 ай бұрын
и вам спасибо)
@melnyk_yevhenii
@melnyk_yevhenii Жыл бұрын
когда будет такое видео только по c# c Пашей Львовом ?
@teachmeskills
@teachmeskills Жыл бұрын
Есть уже 2 на канале. Пока в процессе подготовки контента)
Python против C# Что лучше для новичка
59:34
TeachMeSkills Школа программирования
Рет қаралды 18 М.
Вопросы на собеседовании по PYTHON
28:43
TeachMeSkills Школа программирования
Рет қаралды 13 М.
Players vs Corner Flags 🤯
00:28
LE FOOT EN VIDÉO
Рет қаралды 70 МЛН
From Small To Giant Pop Corn #katebrush #funny #shorts
00:17
Kate Brush
Рет қаралды 70 МЛН
Миллионер | 1 - серия
34:31
Million Show
Рет қаралды 2 МЛН
Как пройти собеседование на Java разработчика
58:53
TeachMeSkills Школа программирования
Рет қаралды 18 М.
Что такое Python и чем он хорош?
1:06:26
TeachMeSkills Школа программирования
Рет қаралды 10 М.
Как пройти СОБЕСЕДОВАНИЕ на C# & .Net РАЗРАБОТЧИКА? (2)
54:58
TeachMeSkills Школа программирования
Рет қаралды 57 М.
Собеседование на позицию Senior Python Developer 5000$ #12
21:18
Python собеседования
Рет қаралды 7 М.
Players vs Corner Flags 🤯
00:28
LE FOOT EN VIDÉO
Рет қаралды 70 МЛН