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

Поделиться
HTML-код
  • Опубликовано: 11 дек 2024

Комментарии • 43

  • @Ivan-feast007
    @Ivan-feast007 День назад

    Как же круто и понятно он всё объясняет

  • @knarg4682
    @knarg4682 10 месяцев назад +11

    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)
    Точно так же фабрика создания объектов путём клонирования вложенного пространства имён. Точно так же атрибуты и методы у каждого экземпляра. И всё это живёт столько, сколько родина прикажет.

  • @ДенисАхметов-т4д
    @ДенисАхметов-т4д 9 месяцев назад +4

    У кортежей можно брать срезы. Как и строк (строки тоже неизменяемый тип данных). Просто срез возвращает новый объект

  • @mikhailtokarev4633
    @mikhailtokarev4633 Год назад +12

    Классный гость :), наверное один из самых сдержанных у вас на канале.

  • @kodunaiff3835
    @kodunaiff3835 Год назад +3

    крутой гость, интересно рассказывает и доходчиво.

  • @high_fly_bird
    @high_fly_bird 8 месяцев назад

    Спасибо за качественные и лаконичные ответы!

  • @makspuzankov0057
    @makspuzankov0057 10 месяцев назад +1

    Спасибо за полезную информацию!

    • @teachmeskills
      @teachmeskills  10 месяцев назад

      И вам спасибо за фидбек

  • @nerdizay
    @nerdizay 7 месяцев назад +6

    Зачем кортежи обидели, кортежи могут быть ключами словарей и быть внутри множества, а список ни того ни другого не может (это про гибкость)

  • @Andrewlone174
    @Andrewlone174 Год назад +3

    Изучаю Python, было интересно послушать .

  • @Жак-э7э
    @Жак-э7э 4 месяца назад +2

    В смысле "у кортежа нельзя взять срез"? И у строки, и у кортежа можно взять срез. В чем проблема?

  • @Паша-н9ь
    @Паша-н9ь Месяц назад

    Very nice 😅

  • @borismish3017
    @borismish3017 Год назад +3

    Про сборщик мусора ответ слишком простой, еще бы неплохо было рассказать про разрешение циклических ссылок. Про дикты - хеш таблицы и коллизии. Кстати интересный вопрос, который я спрашиваю на собесах, и самое интересное мало кто знает. Какая есть встроенная структура данных, аналогичная словарю.

    • @ВладиславБаранов-с2р
      @ВладиславБаранов-с2р Год назад

      И какая же это структура данных? Не нашел в документации

    • @borismish3017
      @borismish3017 Год назад +2

      @@ВладиславБаранов-с2р set - это по сути словарь, но у которого ключи последовательность чисел от 0

    • @ВладиславБаранов-с2р
      @ВладиславБаранов-с2р 11 месяцев назад

      @@borismish3017 спасибо за ответ, погуглил, значениями множества могут быть только хешируемые типы данных, а у словаря -- изменяемыми. Странно конечно.

    • @maesthrow
      @maesthrow 10 месяцев назад +3

      ​@borismish3017 set - это словарь, у которого ключи и есть значения множества, а значения этих ключей - это один и тот же фиктивный объект (просто экземпляр object), который вообще не используется. Как раз это и объясняет почему значениями множества могут быть только хешируемые типы, т.к. это по сути ключи внутреннего словаря и так реализуется уникальность элементов в set, а у самого словаря значениями могут быть уже любые типы

  • @quansumonner
    @quansumonner Год назад +10

    35:06 - достать элемент по индексу из dict в python, чего Б....???? Может по ключу?!
    35:19 - получение элемента по индексу в list - O(1), а вот поиск по List'y - O(n).
    А упоминать коллизию и etc.
    Лучше не смотреть полностью, а то с ума сойду.

    • @How_is-x5b
      @How_is-x5b 10 месяцев назад +1

      Всё правильно, ато разобьёшь свой хрупкий мозг и растеряешь последние мозги

    • @quansumonner
      @quansumonner 10 месяцев назад

      @@How_is-x5b Это оскорбление в мой адрес или что? sorry

    • @vonderklaas
      @vonderklaas 3 месяца назад

      Судя по таймкодам ты уже практически все просмотрел 😂

  • @eeluxa
    @eeluxa 10 месяцев назад +1

    То есть на джуна проходит?

  • @hardline_fc
    @hardline_fc 10 месяцев назад +2

    Крутой чувак базу выдает. Лол меня всегда умиляют разные "разработчики" которые выбрали узконаправленный легчайший кал для изучения, аля руби, джс, тд, и тявкают на питон.
    Джил ко-ко-ко, управление памятью куд-ку-дах. Дохера веб-макаки треды открывают в своем браузере на джаваскрипте, или менеджерят память побитно на руби. Это как терпила которого все всегда унижали, придет и с нифига начнет на тебя гнать, чтобы самоутвердиться.

  • @РоманОсипов-у1з
    @РоманОсипов-у1з Год назад +9

    Так получилось что видео начал смотреть не с начала, а с 13 минуты...и как получается что у tuple нельзя сделать срез? точно также делается как у списка. кортежы быстрее, под них выделяется меньше памяти. дальше смотреть не стал, сорян.

    • @КоляБереговой-с4и
      @КоляБереговой-с4и 11 месяцев назад

      Было сказано, что под кортежи быстрее

    • @MyFearIsMyBlue
      @MyFearIsMyBlue 11 месяцев назад +1

      Смысл ответа в том, что ты не можешь взять полкортежа в отличии от половины списка. Половина списка будет реально срезом списка, а "половина" тупла будет новым туплом.

    • @РоманОсипов-у1з
      @РоманОсипов-у1з 11 месяцев назад +1

      @@MyFearIsMyBlue что значит "реально срезом списка"? срезы всегда возвращают новый объект, неважно срез чего вы делаете.

    • @How_is-x5b
      @How_is-x5b 10 месяцев назад +4

      Ну и иди отсюда, всем плевать

    • @Interestingworld-vc8sx
      @Interestingworld-vc8sx 9 месяцев назад

      Уже подозрительно,что ты с 13 минуты залип😂

  • @denisbalyasnikov7185
    @denisbalyasnikov7185 3 месяца назад

    Половина коментов в стиле: "Эээ..у кортежа можно брать срез, ты че дядь!?".
    Технически можно, как у любой последовательности, но в промышленном коде так никто не делает...вот и оговорился человек, у которого опыта больше, чем многим комментаторам лет отроду)

  • @БогданАтрошенко-в9у
    @БогданАтрошенко-в9у 6 месяцев назад

    пистолет с глушителем)))
    признавайтесь тоже проходили курс по python для профессионалов на stepik?

  • @VaeV1ct1s
    @VaeV1ct1s 9 месяцев назад

    Если бы из ролка вырезали все цитаты персонажа справа - было бы на много лучше. В остальном ролик понравился

    • @teachmeskills
      @teachmeskills  9 месяцев назад

      извините, "персонаж" справа пока останется. придется терпеть)

  • @Alllexxx11
    @Alllexxx11 Год назад +2

    Вы меня, конечно, извините, и кто я такой что бы Александру как человеку с многолетним опытом рассказывать как правильно. Но есть путаница в терминологии. Пайтон он же и есть со СТРОГОЙ типизацией, просто она ДИНАМИЧЕСКАЯ

    • @teachmeskills
      @teachmeskills  Год назад +2

      Спасибо за замечание! Принимаем все)

    • @How_is-x5b
      @How_is-x5b 10 месяцев назад

      Строгая типизация не для тебя, она под капотом происходит и как и многое другое в питоне, так что расслабь булки никто не поругает если просто скажешь что у питона динамическая типизация

  • @melnyk_yevhenii
    @melnyk_yevhenii Год назад

    когда будет такое видео только по c# c Пашей Львовом ?

    • @teachmeskills
      @teachmeskills  Год назад

      Есть уже 2 на канале. Пока в процессе подготовки контента)