Zen of Python
20.1K subscribers
1.29K photos
179 videos
36 files
3.3K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
​​Самые популярные вопросы на собеседовании: «Как перевести строку в верхний/нижний регистр?»

Это очень простой вопрос, но и на них иногда «спотыкаются», особенно новички. Для ответа на этот вопрос можно использовать строковые методы upper() и lower():

small_word = 'potatocake'
big_word = 'FISHCAKE'
small_word.upper()
#=> 'POTATOCAKE'

big_word.lower()
#=> 'fishcake'

#собеседование
👍19🔥3👎1👏1
​​​Самые популярные вопросы на собеседовании: «Объясните функцию range»

Range генерирует список целых чисел. Её можно использовать тремя способами. Функция принимает от одного до трёх аргументов.

range(stop) — генерирует целые числа от 0 до целого числа stop:
[i for i in range(10)]
#=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range(start, stop) — генерирует целые числа от start до stop:
[i for i in range(2,10)]
#=> [2, 3, 4, 5, 6, 7, 8, 9]

range(start, stop, step) — генерирует целые числа от start до stop с интервалами step:
list(range(2,10,2))
#=> [2, 4, 6, 8]

#собеседование
👍38👎5🔥1💩1
​​​​Самые популярные вопросы на собеседовании: «В чём разница между func и func()?»

Это совсем несложный вопрос, но многих новичков он ставит в ступор. На самом деле вопрос нужен только для того, чтобы проверить ваше понимание, что все функции в Python также являются объектами:
def func():
print('Im a function')

func
#=> function __main__.func>

func()
#=> Im a function

func — это представляющий функцию объект, который можно назначить переменной или передать другой функции. А вот функция func() уже вызывает функцию и возвращает результат. Вот и всё :)

#собеседование
👍241
​​​​​Самые популярные вопросы на собеседовании: «Как работает функция map?»

Обычно, когда нужно обработать и преобразовывать все элементы в итерируемом объекте, первое, что напрашивается, это цикл for.

Но у for есть несколько недостатков, которых можно избежать, используя map():

1. Поскольку map() написан на C и сильно оптимизирован, его внутренний подразумеваемый цикл более эффективен, чем обычный цикл for.

2. Второе преимущество использования map() — потребление памяти. С помощью for вам нужно сохранить весь список. А map() вы получаете элементы по запросу, и только один элемент находится в памяти в данный момент.

То есть map() полезен, когда вам нужно применить функцию преобразования к каждому элементу в коллекции или в массиве и преобразовать их в новый массив. Она возвращает объект (итератор), который перебирает значения, применяя функцию к каждому элементу. В случае необходимости объект можно преобразовать в список:

def add_three(x):
return x + 3
li = [1,2,3]
list(map(add_three, li))
#=> [4, 5, 6]

Например, здесь к каждому элементу в списке мы добавляем число 3.

#собеседование
👍41🔥1
​​​​​​Самые популярные вопросы на собеседовании: «Объясните, как работает функция reduce»

reduce принимает функцию и последовательность — и проходит по этой последовательности. На каждой итерации в функцию передаются как текущий элемент, так и выходные данные предыдущего элемента. В конце концов, возвращается одно значение:

from functools import reduce
def add_three(x,y):
return x + y
li = [1,2,3,5]
reduce(add_three, li)
#=> 11

Возвращается 11, то есть сумма 1+2+3+5.

#собеседование
👍292
​​​​​​​Самые популярные вопросы на собеседовании: «В чем разница между pass, continue и break?»

Иногда бывает нужно просто ничего не делать. Но Python не позволяет создавать класс, функцию или оператор if без кода внутри. Здесь нам помогает заглушка pass — она как раз и означает «ничего не делать».

Код в примере ниже выдаст ошибку, если внутри i > 3 не будет кода, поэтому мы используем pass:
a = [1,2,3,4,5]
for i in a:
if i > 3:
pass
print(i)
#=> 1
#=> 2
#=> 3
#=> 4
#=> 5

continue отправляет вас к следующему элементу в цикле, останавливая выполнение для текущего элемента. Так print(i) никогда не получает значения i < 3:
for i in a:
if i < 3:
continue
print(i)
#=> 3
#=> 4
#=> 5

break же полностью прерывает цикл, и последовательность больше не повторяется. В нашем примере на цифре 3 цикл прерывается, а этот и следующие элементы не печатаются:
for i in a:
if i == 3:
break
print(i)
#=> 1
#=> 2

#собеседование
👍363💩3
101 вопрос, на который должен ответить Python-разработчик

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

Попробуйте ответить на все: https://tproger.ru/articles/101-vopros-python-razrabotchiku/

#собеседование
👍13🔥5👎3🤔2
​Помните 101 вопрос, на который должен ответить Python-разработчик?

Так вот вам 101 ответ! А если быть точным, то 99. Не знаю, почему автор упустил 2 ответа, но это и не важно, всё равно это отличная работа.

Если с вопросами вы могли только проверить только факт, знаете вы ответ или нет. То здесь уже можно проверить, насколько вы правы, а если ошиблись — узнать правильный ответ.

#собеседование
👍16🔥43💩2
Выполняем тестовое задание на джуниора Python-разработчика с зарплатой 70 000 рублей

В видео разобрали тестовое с приложением для конвертации PDF-файлов в MP3 и конвертатором криптовалют с веб-интерфейсом на Django.

Хорошая практика, так ещё и на задачах из реального тестового задания: https://youtu.be/Q0lHb-FCATk

#видео #django #собеседование
😁10🤡6👍4💩1👌1
Как работает функция filter?

Вроде бы всё просто, функция делает буквально то, о чём говорит её название, — фильтрует элементы в последовательности. Но давайте разбираться, как именно она это делает.

Основная фишка функции filter в том, что каждый элемент передается функции, которая включает его в последовательность, если по условию получает True, и отбрасывает в случае False.

Например:
def add_three(x):
if x % 2 == 0:
return True
else:
return False

li = [1,2,3,4,5,6,7,8]

[i for i in filter(add_three, li)]

Мы получим:
#=> [2, 4, 6, 8}

Для базового использования этого понимания должно хватить. Но у filter также есть несколько особенностей использования, которые важно учитывать при продвинутой разработке. О них подробнее можно почитать в статье.

#собеседование
👍5
​​@pyainter_bot | ИИ-тренер по Python

Разработчики, которые доводят свои пет-проекты до ума, существуют... Один из них создал питонического тренера в Telegram для собеседований. Среди фичей:

— Система начисления очков;
— Множество разделов (Основы Python, ООП, Базы данных, Тестирование и проч.);
— Режим «злого учителя»: бот гоняет вас на слабые темы;

Проект опенсорсный. Если вам захотелось выставить свою LLM и задать ей свои промты, дерзайте.

Репозиторий проекта
#инструмент #собеседование
@zen_of_python
❤‍🔥5👎21