🌸 До 14 мая скидка на курсы по Python от 15 000 до 30 000 рублей: ru.hexlet.io/link/wLBgoM 🔥 Бесплатный курс «Основы Python» от Хекслета. Начните в любое время: ru.hexlet.io/link/5Vq2jV ✅ Полезные вебинары по программированию каждую неделю: ru.hexlet.io/link/Uqrgvw 00:00:00 интро 00:00:20 занимался проектированием электростанций, обучился в августе 2023 и в январе 2024 устроился на работу 00:01:23 пугалки про магические часла 00:03:14 что такое транзакции в базе данных 00:05:03 зачем нужны базы данных 00:06:22 теоретическая задача: как найти записи по диапозону дат в очень старой базе данных 00:09:10 за сколько происходит поиск в бинарном дереве 00:11:10 что такое SOLID 00:13:08 типы данных в Python 00:17:50 асинхронность в Python 00:21:36 зачем в Python многопоточность 00:26:40 что такое Yeild 00:30:03 дескрипторы в Python 00:30:49 как в Django сделать join 00:32:30 строка содержит открывающиеся и закрывающиеся скобки, нужно проверить валидность 01:01:20 есть поезд, который едет с определённой скоростью из пункта A в пункт B и есть воробей, который летит в пункт B быстрее поезда, в пункте B разворачивается, летит обратно к поезду, снова разворачивается до пункта B и повторяет так до тех пор, пока поезд не окажется в пункте B. Сколько километров пролетит воробей в общем? 01:20:20 резюмируем 01:22:36 какие книги по Python прочитать 01:28:25 советы, если хочется уйти в сеньоры
@ФдрФффАй бұрын
Собеседование на питон разработчика. - Начнем с теории... Базы данных:)
@oppa_na5627Ай бұрын
а можете объяснить в чем сюр?
@ФдрФффАй бұрын
@@oppa_na5627 базы данных это не питон. Это как собеседование на проктолога начинать с вопросов про аномалии работы мозга.
@КириллР-ч5ю4 ай бұрын
задача про скобки def check_parentheses(_str: str) -> bool: dct = {'{': ')]', '(': ']}', '[': '})'} opening_bracket = 0 for i, bracket in enumerate(_str): if i != len(_str) - 1 and bracket in dct.keys() and not _str[i + 1] in dct[bracket]: opening_bracket +=1 else: opening_bracket -= 1 if opening_bracket < 0: return False return True
@nitnatsnokk2 ай бұрын
Спасибо за полезный ролик!
@sterben2073 ай бұрын
Задачу про поезд и воробья же можно решить так? def sparrow_distance(distance,sp_v,tr_v): return (sp_v/tr_v)*distance
@IDVRI3 ай бұрын
Тоже покажу решение) (скобки через рекурсию) brackets = { '{': '}', '[': ']', '(': ')' } def check_brackets(string: str) -> bool: if len(string) == 0: return True if brackets[string[0]] in string: string = string.replace(brackets[string[0]], '', 1) else: return False return check_brackets(string[1:])
@pillow_eng4 ай бұрын
задача про скобки opened_sym=['(','[','{'] closed_sym=['}',']',')'] def check_brackets(st): open_brack=[i for i in st if i in opened_sym] close_brack=[i for i in st if i in closed_sym] return len(open_brack)==len(close_brack)
@igorsamoilenko46284 ай бұрын
Плохо... даже на '}{' возвращает True
@mihto52026 ай бұрын
Вопрос к автору: а как питоновская многопоточность поможет ему бустануть вычисление числа Пи до миллиардного знака?
@gaxeliy6 ай бұрын
Она поможет не заблокировать эвентлуп
@mihto52026 ай бұрын
@@gaxeliy т.е. это буст относительно асинхронного выполнения, но не относительно обычного синхронного?
@gaxeliy6 ай бұрын
@@mihto5202 конкретно в этом кейсе - да
@gaxeliy6 ай бұрын
@@mihto5202 в данном кейсе - да
@arhangelist6 ай бұрын
Это в общем и не буст даже. Просто возможность не заблокировать напрочь приложение, пока идёт длительное вычисления, периодически самостоятельно возвращая управление event loop'у.
@R_in_B2 ай бұрын
Можно просто на динамически меняющимся счетчике решить если счетчик стал в какой то момент отрицательный то False, если он в конце остался 1 то тоже False ну а если в конце 0 то True
@PRiKoL1ST14 ай бұрын
поиск в бинарном дереве будет линейный!
@aj3n5562 ай бұрын
Интервьюер слабый, для логарифмического времени нужно чтобы дерево было сбалансированным, чего упомянуто не было.
@Сергей-ф2ъ7я6 ай бұрын
На задачку про воробья плотно попался
@Advokat7V3 күн бұрын
Групость чистой воды, зачам заставлять учить кандидата тому, что ему никогда не будет нужно, хотите теории, берите на работа жпт, а практика, особенно первой задачи, показала, что они оба не понимают что к чему, вторая лишь подтвердила первый тезис, при котором сидит тело и довольствуется собой от своей глупости
@КонстантинАлексеев-ы9б5 ай бұрын
Задачу про скобки можно через рекурсию If _str[0] in open_brackets and _str[-1] in close_brackets: If PAIRS_Brackets[_str[0]]==_str[-1]: return check_brackets(_str[1:-1]) Ну и дописать условия выхода из рекурсии (if len(_str) == 1 or ==2 return True Плюс условия elif return False для условий записать Пиша с телефона тут не удобняк все расписать. Хотя перед кем я оправдываюсь, идите нах.й
@igorsamoilenko46284 ай бұрын
😁
@ФдрФффАй бұрын
И тебе того же.
@ignatrotenberg76765 ай бұрын
Ахах, таким себя тупым почувствовал после задачи с воробьем. Посчитал каждую точку пересечения и сложил сходящийся ряд. А после того как досмотрел понял что птица будет летать вплоть до достижения поездом конца пути, а точки пересечения никто и не просил :D
@BylKaktus5 ай бұрын
А я туда-сюда птичку гонял 🥲 Надо, кажется, налечь на математику
@pretcb4 ай бұрын
Задача про скобки: CLOSE_BRACKETS = '}])' OPEN_BRACKETS = '{[(' PAIRS_BRACKETS = {'[]', '{}', '()'} def ckeck_brackets(s: str) -> bool: open_stack = [] close_stack = [] for bracket in s: if bracket in CLOSE_BRACKETS: if not open_stack: return False close_stack.append(bracket) elif bracket in OPEN_BRACKETS: open_stack.append(bracket) else: return False if open_stack and close_stack and (open_stack[-1] + close_stack[-1] in PAIRS_BRACKETS): open_stack.pop() close_stack.pop() if open_stack or close_stack: return False return True увидел потом решение до конца автора, да - 1 список close_stack - можно выкинуть. Про воробья еще не дослушал, но видя ехидную улыбку ведущего понял прикол, спойлерить не буду лишь намекну - время полета воробья нам уже известно из условия задачи :))) ржу не могу
@imadna58106 ай бұрын
def check_brackets(symbols: str) -> bool: result = [] hash_map = {')': '(', '}': '{', ']': '['} for i in symbols: if i in hash_map.values(): result.append(i) elif i in hash_map.keys(): if result == [] or result.pop() != hash_map[i]: return False return result == []