Смурова Елена собеседование Junior python разработчк

preview_player
Показать описание
Чат для общения pyhton разработчиков и им сочуствующих. Свободное общение, тестовые и вопросы с собесов и прочее. Заходите, там вам рады.

Обычно денежка идёт на книжки про питончик. Но иногда на светлое и тёмное.
Если Тиньков не даёт перечислить, стукните в личку телеги andpronin, придумаем что нибудь

Виш лист
Хорошие книги по Питончику, которые могу рекомендовать (и хочу купить с вашей помощью).

Изучаем Python. Двухтомник. Марк Лутц. Очень подробно и структурно (Хочу дождаться 6го издания.. )
Читаем и разбираем ее тут

Куплено (огромное спасибо зрителям)
Знакомство с Python | Бейдер Дэн (2023) - выглядит приятно для новичка
Чистый Python. Тонкости программирования для профи | Бейдер Дэн (2022) - хорошо для продолжения
Высоконагруженные приложения. Программирование, масштабирование, поддержка | Клеппман Мартин
Python. К вершинам мастерства | Рамальо Лучано - 2е издание - сложно для новичка, но интересно
Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура -- хорошо про то, когда какой фреймворк применять
Видимо, дальше появтся еще нескромные желания. Но пока - так

Моя тележка andpronin -- стучите, если что.
Мой канал про обучению python с нуля и до мидла Андрей+=Пронин

Я в других сетях

#python #питон #программирование #Андрей_Пронин #собеседование #голодные_игры
Рекомендации по теме
Комментарии
Автор

после того, как она посчитала, что for перебирает в тексте слова, хотя оно перебирает одиночные символы, можно выключать.

bunasha
Автор

Первый метод:
sorted(..., key = len)

Второй метод:
from collections import Counter

Третий метод:
len([s for s in text if s in "., /';][ и так далее]). Это если без гугла, а гугл показывает, что есть ещё метод "s.isalnum()", который ещё гораздо все упрощает

Четвертый метод:
сделать список words с помощью split(), потом ", ".join(w for w in words if w == w[::-1])

flower-py
Автор

В такого рода задачках лучше проговорить подход, а не бросаться сразу решать. Думаю, Андрей мог бы дать наводки, которые позволили задачку решить быстрее и правильно.

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

EduardMalinochka
Автор

В первом методе чеки не прошли. Оно зависло на while навечно :) while - опасная штука ))

vortex
Автор

Ну, весьма противоречивые чувства.
Скажем так: если выкинуть все минусы и ошибки вида off-by-one, то я бы сказал что-то типа "+-".

Из минусов:
1. Питона она не знает. Прям совсем. Банальный сплит решил бы много проблем.
2. В скрипте бесконечный цикл - поэтому не было ошибок в ассертах - функция просто не завершилась.
3. isalpha() - проверяет: буква или нет. То есть, все цифры попадут в счетчик спецсимволов.
4. Проверка на палиндром в целом не рабочая: и регистр может быть разный, и цифры могут быть.
5. Использование 2 while это, конечно, можно, но внутренний словит IndexError, если строка будет заканчиваться на спецсимволах.
6. Также циклы некорректно отработают в случае вида "word, word, word" - k будет указывать на пробел, в итоге след. слово будет не "word", а " word". Ну и нет обработки граничный условий (последнее слово).

В целом, вроде бы логика и рассуждения есть. Изучить Питон, порешать алгосы - и будет норм, КМК.

IdE
Автор

Эх, прям себя увидел, 🙂 спасибо за собес 🤝

Maine__Coon__
Автор

Прикол, найти самое длинное слово, а она находит длину.😅 И Андрея это не смутило. Проверка палиндрома уходит в бесконечный цикл. Неужели сложно запустить код?

NikitaGriboedov
Автор

Важное качество для программиста - читать сообщения об ошибках. Меня больше всего шокировало, что простая ошибка "TypeError: < не поддерживается для int и range" вызвала не очевидный поиск тривиальной ошибки уровня опечатки, а какие-то жонглирования с типом Exception при валидации параметра, перемещением этой проверки и т.п. - вообще в другом месте. Сразу в строку с ошибкой разве нельзя посмотреть - всё же подсвечивается?

Kotemur
Автор

Где она работу находила? Я все задачи за полчаса написал.
Первая и последняя решаются в одну строку.
Регулярку и счетчик из коллекции использовал

yytlfzx
Автор

Всем привет, вчера проходила второе техническое собеседование в жизни. Готовилась по материалам, по которым училась, такого рода видео, про решала задачи такого рода. На собеседование спросили что под капотом асинхронности, под капотом джанго и алгоритмы. В общем успешно провалила собеседование. При чем собесудющий знал, что только закончила курсы. 😅😅😅 Вывод ещё учиться и учиться.

vvsxthr
Автор

я бы написал функцию которая решает одновременно все задачи и записывает их решение в атрибуты класса, и если значение атрибута класса пустое - то вызывать эту функцию в первый и последний раз). Тогда для решения всех задач нужно только один раз пройтись по каждому элементу text, и каждый раз при вызове какого-то метода не нужно будет заново считать

WDemidenko
Автор

А можно мне себя предложить на вакансию?

yytlfzx
Автор

Вместо .isalpha() лучше использовать .isalnum(), так как числа могут быть палиндромами (101, 2442, и т.д.)

baltictea
Автор

Похоже оба профнепригодные. Как можно не заметить, что программа в бесконечном цикле повисла?

AlexSav
Автор

У меня, как у чайника, есть вопрос, если кто ответит буду благодарен. split, strip почему не использовали?

pjerli
Автор

А что это за голодные игры? и еще вопрос, там функциональной парадигме учат у вас?

ivanabdullaev
Автор

По самому длинному слову
У вас бесконечный цикл.
По этой причине и тесты якобы прошли все

deo
Автор

Добавлю со стороны ООП клацальщика: не показала знания по ООП - их очень мало тут, если делать то красиво - сделать слоты, проперти исключив сеттер и делетер, закрывать обработку текста от юзера, точнее ее механику, плюс реализовать магию перебора и обработку входа с обработкой текста внутри с ходу при создании экземпляра, это своего рода сплиты и стрипы (если конечно же не пишем голый алгос), к тому же - если переменные типа греческого алфавита то аннотировать их хотя бы или же если функция на первый взгляд непонятна по названию и функционалу - писать докстроку. На это уйдет не так много времени на все это, тем более ты показываешь свою грамотность и демонстрируешь свою практику абы глаз радуется и грузить неохота, но положительно все же отмечу: то что с ходу понимает концепцию решения задачи это конечно плюс, однако, однако... как говорится - необходимый но недостаточный в целом. Аллес

furiousrunner
Автор

18:18 Чуть со стула не упал, зачем так кричать.

virnus
Автор

На таких собесах когда еще и запись идет можно сильно переволноваться, что у меня собственно и было, поэтому какие-то глупые ошибки точно можно простить. Накидал за несколько минут решение задачки, чтобы сравнить с тем что получилось в итоге, но не ожидал что девушка будет все вот так прямо решать. В любом случае молодец, но над базой надо работать это факт.
Мое решение за 5 мин на коленке, может где-то ошибся, особо его не тестировал, просто то что сходу пришло:
from collections import Counter
import string
class Text:
def __init__(self, text:str):
self.txt = text
self.words = [i.strip() for i in self.txt.split()]

def longest(self):
return sorted(self.words, key = len)[-1]

def more_used(self):
return max(Counter(self.words))

def special_symbols(self):
return len(list(filter(lambda x: x in string.punctuation, self.txt)))

def polindroms(self):
l = []
for i in self.words:
if i == i[::-1] and i.isalpha():
l.append(i)
return ', '.join(l)

dontkillmyvibe