Comments 32
Интересное конечно голосование, а если я знаю sql и при этом не практикую python?)
Может быть стоит разделить голосование на отдельно sql отдельно python ?
Задача 7. DELETE FROM ок, и TRUNCATE TABLE тоже ок:
TRUNCATE TABLE test;
[2021-11-09 17:28:37] completed in 170 ms
Обе команды при этом не являются "удалением таблицы", а являются удалением ИЗ таблицы. С рядом различий между собой.
Питона не знаю, но задача 9 наоборот, показалась самая лёгкая (так как в задаче 5 было пояснено, что and оператор логический, а не бинарный)
При том, будет совсем другой разговор, если таблица действительно названа именно Demo, а не demo. В этом случае все приведённые запросы будут ошибочны, т.к. необходимо писать TRUNCATE TABLE «Demo»;
print('Curly brackets: {}')
а Вы тут f не пропустили?)
# Что выведет код?
print(11 > 0 and True)
Правильный ответ
False
![](https://habrastorage.org/webt/sn/fa/fw/snfafw-hv_vziy7wv-f8x7nbupe.png)
¯\_(ツ)_/¯
Имелось в виду
print(11 > 0 is True)
причём в третьем питоне выдаёт ещё и синтаксическое предупреждение
Задача 1. Метод extend в Python
IMHO, в extend не очень соблюдается питоновский принцип "явное лучше неявного". Потому что фиг догадаешься, что добавится в этих случаях:
l.extend({'K':'V'})
l.extend({'key':'value'})
l.extend(['value'])
l.extend('value')
l.extend(('qwe',))
l.extend(('qwe'))
Задача 9. Комбинирование условий сравнения в Python
У вас тут в коде должно быть is или == вместо and. Но сама задача вообще не очевидная, никогда ды не догадался.
По-моему здесь: print('Curly brackets: {}') будет все-таки первый вариант
Curly brackets: {}
Я всегда буду обновлять комментарии…
Публиковали бы развернутые ответы под спойлером. А то ВК не дает картинки смотреть без регистрации.
Мы были очень удивлены — казалось бы, extend — стандартный списковый метод в Python. Ан нет — у подавляющего большинства он вызвал затруднение.
Стандартный, только вот программисту по рукам надо бить, если он в здравом уме пишет конструкции типа предложенных. И в ответе на задачку не сколько знание языка, сколько зазубривание всяких undefined behavior и неочевидностей, на которые в реальном коде никогда не наткнешься.
Здесь мы тоже думали, честно говоря, что ответ прям очевиден: f-строки это же ведь совсем базовый Python. Но мы снова были не правы.
2021, конечно, но все-таки f-строки появились-то буквально недавно, в 3.6, который вышел в 2017, на секундочку. Может, у вас конечно все на bleeding edge живут, но вот у нас до сих пор местами встречаются индивиды, которые на 2.7 пишут, как их по рукам не бей. Хотя сейчас уже скорее исключения, но есть. А вы тут про новые модные фичи спрашиваете, да и подаете как «базовые».
Вроде все очевидно — 2 числа и оператор AND. А что получится в итоге — не понимаешь. И никто почти не понимает.
Простите, как очевидно? Это также, как в первой задаче — по рукам бить такого программиста надо, а не вникать в такие странные конструкции. Но серьезно — что очевидно-то? Возможно, если бы там какое-нибудь побитовое AND было на сях, еще можно было бы сказать, что «очевидно». Но явно не в питоне. Тут за такое по рукам бить мало.
# Сколько правил PEP8 нарушено при таком импорте библиотек?
Это вообще за гранью, разработчику делать больше нечего, что ли? Ладно вы бы бинарно спросили «нарушает ли пеп8», там хоть понятно. А тут, ну блин, я не знаю, как у вас процесс разработки устроен, но обычно такие сервисные штуки напишут как-нибудь, потом просто нажмут какой-нибудь Ctrl+Shift+F или Alt+Shift+L или пре-коммит запустят, что там у вас в проекте и оно все отформатируется как надо. Достаточно ихмо ответа «да чот кажется не очень, пользовательские либы вперемешку со стандартными, надо поменять местами и пустую строчку добавить».
Согласитесь, все эти 10 задачек кажутся очень легкими на первый взгляд
Неа, не согласимся. И уж тем более ни одна из предложенных «задач» не отражает ни опыта ни знаний языка. Максимум, отражает то, насколько кандидат ботал какие-то undefined вещи. Если бы я был собеседующим, вынужденным задавать такие вопросы, то, думаю, я бы сразу сделал оффер кандидату, если бы ответ\реакция был «что за отстой, давайте перепишем нормально и не будем задавать такие тупые вопросы».
по рукам надо бить
по рукам бить такого
по рукам бить мало
Злой вы :)
То чувство когда UB есть не только лишь в C/C++
В задаче 6 - правильный ответ - ничего из перечисленного, потому что кавычки выведены не будут!
В задаче 9 3.10 вот что мне вывел:
C:\>py
Python 3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print(11 > 0 is True)
<stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
False
>>>
Когда мне на собеседовании задают такие вопросы, то я спрашиваю в ответ "а зачем писать код, который вызывает затруднения?". Ради спортивного интереса, конечно, прикольно, но в проде я бы такое и сам не писал, и на ревью не пропустил. "Встретив двусмысленность, отбрось искушение угадать."
Как правило такие работодатели на самом деле понятия не имеют кто им нужен, бежать от таких надо.
Собеседование это не экзамен на знание неочевидных особенностей. Кандидат увидел неправильность и заявил об этом - хорошо, он будет избегать подобных вещей. Смог правильно решить ребус - тоже хорошо, значит разбирается в теме.
Смог правильно решить ребус - тоже хорошо, значит разбирается в теме.
Не факт... Может просто читает на хабре такие статьи и ходит на курсы.
Может просто читает на хабре такие статьи и ходит на курсы.
Интересуется этой темой и пытается развиваться в этом направлении. Тем более надо брать ;)
я наверно неправильный, но при знакомстве с новым языком после первичного изучения синтаксиса и логических принципов/особенностей стараюсь найти статьи с описанием правильного стиля и таких неоднозначных "подлянок".
а на собеседовании такие вопросы чисто джастфофан на сообразительность и понимание особенностей
которые кажутся очень простыми, но подавляющее большинство опрошенных дали неправильные ответы
Потомучто ваши задачки для очень опытных разработчиков. Своей короткой формулировкой они просто вводят в заблуждение.
Поскольку в задачках формулируются очень необычные случаи, то для из решения очень хорошо надо разбираться в языке.
Я бы такие задачи задавал на собеседования для Senior разрабочиков, чтобы узнать насколько человек разбирается в языке и не будет подобные штуки писать в реальном коде :)
А на практике когда непонятно как работает какая-то короткая конструкция, запускаешь консоль и там проверяешь. Опциально можно разобраться почему вывод именно такой.
Вы издеваетесь, куча ошибок.
Задача номер 3. Говорите об f строках хотя нет f строки. В ответе Ошибка
не будет там ошибка, там просто print('Curly brackets: {}'
10 легких задач по Python и SQL, которые оказались сложными :/