Получи случайную криптовалюту за регистрацию!

PYTHON 🐍 DEPTH

Логотип телеграм канала @python_in_depth — PYTHON 🐍 DEPTH P
Логотип телеграм канала @python_in_depth — PYTHON 🐍 DEPTH
Адрес канала: @python_in_depth
Категории: Технологии , Образование
Язык: Русский
Страна: Россия
Количество подписчиков: 1.55K
Описание канала:

Это новый проект вдохновленный создателями @coolpython
Каталог: @itpython

Рейтинги и Отзывы

3.33

3 отзыва

Оценить канал python_in_depth и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

1

3 звезд

0

2 звезд

0

1 звезд

1


Последние сообщения 4

2021-03-11 12:06:10 Без aspera ad astra

Мне часто задают вопросы вида «хочу заниматься разработкой, имеет ли смысл сначала устроиться тестировщиком?» Или, например, если человек хочет в аналитику, то иногда пытается двигаться через BI. То есть, люди пытаются иногда вкатываться в новую область через смежную.

Я сама искала первую работу в IT, когда заканчивала универ и работала младшим научным сотрудником в лабе. У меня было резюме с пет-проектами, но, естественно, без опыта на реальных задачах.

Мне тогда казалось, что без опыта никуда не примут, помню ощущение собственной ненужности. Некоторым такое проще: ничего же не теряешь от попытки устроиться. Другим сложнее, потому что во многих глубоко сидит страх перед собеседованиями. Страх быть отвергнутым.

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

В детстве самым активным из нас говорят «в каждой бочке затычка», а когда вырастаешь, оказывается, что это ценное профессиональное качество. Мне кажется, надо сразу браться то, что нравится. Бесплатно, недорого, либо на стажировке — но не теряя время на ненужные задачи и задерживаясь только на проектах, работа на которых приближает к желаемой картинке будущего.

Но, может, у кого-то из вас был успешный опыт вкатывания в область не напрямую? Например, через BI в аналитику или через разработку в ML. Не когда переквалифицировались, уже будучи зрелым специалистом, а когда специально шли сначала в одну область, чтобы потом попасть другую. Поделитесь в комментариях!
3.6K viewsedited  09:06
Открыть/Комментировать
2021-03-04 15:32:17 Follow-up о map

Обожаю то, как вы не даете мне быть неточной или ошибиться в тексте:) Вот что написали:

Я бы ещё не сказал, что у map три параметра: у map 1 + n параметров. Первый из них — функция, а из итерации по n ≥ 1 оставшимся получаются её аргументы.

Можно, например, передать четыре:

>>> from itertools import repeat
>>> list(map(lambda x, y, z: x*y*z, range(5), range(0, 10, 2), repeat(1)))
[0, 2, 8, 18, 32]

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

Сразу скажу, что мне в чате нужна уютная и поддерживающая атмосфера. Поэтому я баню за троллинг, переход на личности, неконструктивную критику (за конструктивную не баню). Какая реплика норм, а какая нет, решаю интуитивно, справедливости нет.

Но если это ок, то добро пожаловать:

https://t.me/joinchat/U77F142Y0dQBAW_W
3.7K viewsdaily_python_bot, edited  12:32
Открыть/Комментировать
2021-03-04 09:00:05 Параметры map

А вы знали, что у функции map три параметра?

Функция map используется для того, чтобы делать однотипные операции над наборами данных. Например, с ее помощью удобно приводить типы данных:

>>> chr_nums = ['1', '2', '3', '4', '5']
>>> list(map(int, chr_nums))
[1, 2, 3, 4, 5]

или округлять значения:

>>> floats = [2.2865, 3.6420, 6.6418, 8.7231, 3.1528]
>>> list(map(round, floats))
[2, 4, 7, 9, 3]

Но у map есть еще третий параметр, который используют, чтобы передать аргументы в обрабатывающую функцию.

Например, если мы хотим возвести все числа в квадрат, то двойки в аргументы можно передать как список:

>>> list(map(pow, range(10), [2]*10))
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

То же с округлением:

>>> floats = [2.2865, 3.6420, 6.6418, 8.7231, 3.1528]
>>> list(map(round, floats, [3]*len(floats)))
[2.287, 3.642, 6.642, 8.723, 3.153]

Либо так:

>>> from itertools import repeat
>>> list(map(round, floats, repeat(1)))
[2.3, 3.6, 6.6, 8.7, 3.2]

repeat бесконечно повторяет нужную константу, а map ориентируется на самую короткую из введенных последовательностей. Получается ровно столько параметров для map, сколько нужно.

Больше в доке: map, repeat.
3.8K viewsdaily_python_bot, edited  06:00
Открыть/Комментировать
2021-02-23 13:00:20 Задача о циклическом сдвиге

Предложила ее менти как тренировочную.

Циклический сдвиг массива — это когда каждый элемент кроме последнего сдвигается вправо, а последний элемент массива становится первым.

На вход подаются массив A и целое число K. Сделайте циклический сдвиг входного массива K раз и верните получившийся массив.

Например, для данных:

A = [2, 5, 1, 4, 6]
K = 3

Циклический сдвиг должен быть выполнен трижды:

[2, 5, 1, 4, 6] -> [6, 2, 5, 1, 4]
[6, 2, 5, 1, 4] -> [4, 6, 2, 5, 1]
[4, 6, 2, 5, 1] -> [1, 4, 6, 2, 5]

И программа должна вернуть

[1, 4, 6, 2, 5]

Если K = 0, то сдвиг не делается.

Для K = 5:

[2, 5, 1, 4, 6] -> [2, 5, 1, 4, 6]

Наивное решение:

1. Определяем, что такое ротировать массив один раз.
2. Делаем это K раз.

def rotate(A, K):
""" Rotates a list K times """
if not A:
return []

for i in range(K):
A = rotate_once(A)
return A


def rotate_once(A):
""" Rotates a list once """
A.insert(0, A[-1])
del A[-1]
return A

Это решение не оптимальное, потому что каждый insert() передвигает все элементы исходного списка. Также оно не учитывает, что после len(A) ротаций список возвращается в исходное состояние.

Как решила ученица. Она заметила, что индексы элементов в новом массиве несложно рассчитать аналитически:

def rotate(A, K):
""" Rotates a list K times """
result = []
if K == 0:
return A
else:
for i in range(len(A)):
new_index = (i - K) % len(A)
result.append(A[new_index])
return result

Это круче, потому что
результат получается за один проход
и время работы не увеличивается на больших K.

Очень радуюсь, когда получается у учеников!
5.8K viewsdaily_python_bot, edited  10:00
Открыть/Комментировать
2021-02-17 09:00:30 Вакансии для питонистов

Открываю канал с вакансиями jupy_jobs, туда буду скидывать вакансии для Python специалистов.

Первая вот такая.

Инженер по автоматизированному тестированию в Ozon

Озон набирает инженеров по автоматизированному тестированию на Python. Ищут много людей, сразу в два проекта:

— внутренняя CRM для колл-центра,
— чат бот, который общается с пользователями на сайте.

Технологии:
Backend обоих проектов на Go, frontend на React, база Postgres. Тестируют backend на python и pytest, frontend — с помощью typescript. Багтрекинговая система Jira, документы в Confluence.

Что нужно делать:
— Анализировать требования
— Готовить тестовые данные
— Разворачивать сервисы локально
— Делать функциональное и регрессионное тестирование API/UI
— Писать автотесты (python + pytest), запускать, разбирать падения
— Искать, описывать и сопровождать ошибки в Jira

Вы подходите, если:
— Работаете тестировщиком уже 2 года
— Умеете работать с консолью, CI и git (достаточно уметь решать конфликты при мерже), писать чек-листы и тест-кейсы
— Умеете читать данные из MSSQL и PostgreSQL
— Отлично, если умеете в protobuf, GRPC и Graphql.

Вилка:
150 — 200 на руки, зависит от того, как пройдет собеседование

Куда писать:
Откликнуться можно напрямую рекрутеру агентства @jack_kerouack (Николай) или заполнить форму. Все вопросы — Николаю в личку:)

Другие вакансии (от крупных компаний и от стартапов) буду скидывать в @jupy_jobs, stay tuned.
5.3K viewsdaily_python_bot, 06:00
Открыть/Комментировать
2021-02-15 09:00:05 Задача про скобки.

Супер распространенная задача со скрининг-собеседований.

На вход подается строка, состоящая из круглых скобок. Выведите True, если скобки вложены правильно и False, если нет.

Например, если входная строка
(()(())), то ответ должен быть True.
А если ()), то False.

Это базовая задача на алгоритмы и решается она за один проход по строке (O(n)). Идея здесь следующая: нужно завести переменную-стек, которая будет хранить состояние скобки на i-том шаге и в зависимости от состояния принимать решение о том, валидная строка или нет.

Вот видео с более подробным описанием решения.

Я видела варианты, в которых люди пишут свой класс для стека, но в качестве него сработает и обычный список, если использовать только методы append() и pop().

Вот возможное решение, которое мне нравится:

def if_balanced(string):
stack = []
for i in string:
if i == "(":
stack.append(i)
elif i == ")":
if not stack:
return False
stack.pop()
if stack:
return False
return True


print(if_balanced("()()())"))

Усложненная форма этой же задачи: на вход подаются строка со скобками разных видов, например, ([]{}) -> True, ({}([]{)}) -> False.

Можете решить ее самостоятельно.

UPD: в комментарии накинули решение без стека:)
5.1K viewsdaily_python_bot, edited  06:00
Открыть/Комментировать
2021-02-11 09:01:02 Музыкальная пауза

Песни, которые слышим чаще, чем хочется

1. func (1)
2. dct ['key'] = lst [index]
3. ham[ 1 ]
4. counter +=1
5. complex(real, imag = 0.0)
6. import sys, os
7. except Exception:
8. if type(obj) is int:
9. if len(values) == 0:
10. if flag == True



5.3K viewsdaily_python_bot, edited  06:01
Открыть/Комментировать
2021-02-09 17:00:04 Круглый стол по Kubernetes

Допустим, в вашей компании решили перейти на Kubernetes. Это должно было повысить стабильность сервисов, увеличить скорость разработки... Но в реальности этого не произошло. В чем причина: Kubernetes не работает или процессы не отлажены?

Приходите на бесплатный круглый стол 11 февраля в 19:00. Поговорим о том, кто какие задачи решает в кластере Kubernetes, как уменьшить количество необходимых ресурсов для перехода на k8s, за счет чего сокращается time-to-market и причем тут вообще разработчик.

На встрече будут инженеры эксплуатации и разработчики из Mail.ru Cloud Solutions, Слёрм и Southbridge.

#ad
5.3K viewsdaily_python_bot, 14:00
Открыть/Комментировать
2021-02-05 13:56:26 Друзья, я закончила свой курс по Python для начинающих.

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

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

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

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

Группа стартует 15 февраля и я рассчитываю на 6 недель: по 2 раздела в неделю. Получится плотно, но я буду помогать с задачами в чате, созваниваться по Зуму, делать review решений в группе. Набираю всего 30 человек, потому что больше мне самой будет сложно.

Если давно хотели выучить Python, но не знали, с чего начать, то давайте начнем вместе.

PS: после регистрации на почту придет ссылка на группу, не пропустите ее.
6.9K viewsdaily_python_bot, edited  10:56
Открыть/Комментировать
2021-01-31 23:26:54 Релиз NumPy

Вчера вышел самый крупный в истории NumPy релиз: версия 1.20.0. Библиотека в этой версии поддерживает Python 3.7 — 3.9, а ниже нет. Если работаете с NumPy, посмотрите полный список изменений.

#новости
6.7K viewsМаша Чакчурина, edited  20:26
Открыть/Комментировать