Python Lounge: работа и стажировки для программистов
Open in Telegram
Здесь можно найти интересующую вас работу и стажировки для программистов, а так же полезные статьи про Python. Размещение вакансии только - @perezvonyubot Ссылка на канал: @python_lounge Мы входим в сеть promopoisk.com Реклама: @adtgassetsbot
Show more4 245
Subscribers
No data24 hours
-157 days
-6530 days
Posts Archive
Как одной математической формулой по номеру месяца посчитать количество дней в нем?
Попробуем написать функцию f(x), которая бы давала следующий список значений (таблица №1), то есть количество дней в месяцах. Помимо стандартных арифметических операций, мы будем использовать целочисленное деление и взятие остатка по модулю.
Обычно количество дней в месяце колеблется между 30 и 31. При этом, можно заметить зависимость этого числа от четности месяца — значит, воспользуемся операцией взятия остатка по модулю 2. Кажется, это должно быть нечто, вроде:
f₁(x) = 30 + x % 2
# таблица №2
Пока что не обращая внимания на февраль, нам нужно, чтобы +1 в делимом «активировалось» только при достижении аргументом значений, больших 8. При этом значения аргумента не могут превосходить 12. Значит, нам идеально подойдет целочисленное деление аргумента на 8:
f₃(x) = 30 + (x + x // 8) % 2
# таблица №3
Все правильно, кроме февраля. Как неожиданно. В самой последней версии нашей формулы февралю достались целых 30 дней. А потому нам нужно отсечь у него пару дней. Естественно, от этого пострадают и еще какие-то месяцы, поэтому нам придется пожертвовать именно январем, затем подправив формулу и для него. Отсечь дни для первого и второго месяцев можно с помощью выражения 2 % x. Тогда наша формула принимает уже следующий вид:
f₄(x) = 28 + (x + x // 8) % 2 + 2 % x
# таблица №4
Остался последний шаг — подлатать январь. Это сделать не так сложно: просто добавим 2 дня только к нему, т.е. к такому месяцу, чей номер меньше либо равен единице. Как вам идея использовать для этой цели 1 // x? Проверяем:
f₅(x) = 28 + (x + x // 8) % 2 + 2 % x + 1 // x * 2
# таблица №5
Превосходно, 12 из 12. Подобная функция на языке Python может быть записана следующим образом:
f = lambda x: 28 + (x + x // 8) % 2 + 2 % x + 1 // x * 2
print(f'В июне {f(6)} дней')
# Out: В июне 30 днейSwitch-конструкция с помощью словаря
К сожалению, в Python не существует switch-конструкций, в отличие от большинства других языков программирования, и поэтому приходится строить башни из условных операторов в своём коде.
Однако есть одно хитрое решение — использовать словарь, где значениями будут функции. Например, напишем словарь, который будет использован для математических операторов.
switch = {
'+': lambda x, y: x + y,
'-': lambda x, y: x - y,
'*': lambda x, y: x * y,
'/': lambda x, y: x / y
}
В этом примере были использованы lambda-функции для простоты, но вместо них можете подставить любые другие. Для тех, кто не знает: lambda - объявление анонимной функции (можно косвенно сравнить с def); x, y - принимаемые аргументы; x + y - то, что функция возвращает.
result = switch['*'](4, 5)
print(result)
# Output: 20
Примерно вот так мы можем пользоваться подобной штукой. Думаю, что многие найдут полезное применение подобному использованию словарей.Создаем свой простенький локер - вирус, блокирующий компьютер; а также используем новый интересный модуль
Tkinter: часть 5
Использование списков в качестве стеков
Стек — абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (англ. last in — first out, «последним пришёл — первым вышел»).
Методы встроенного списка в Python позволяют очень легко использовать список в виде стека. Чтобы добавить элемент на вершину стека, используйте
append(). Чтобы извлечь элемент из верхней части стека, используйте pop() без явного индекса. Пример:
>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack
[3, 4, 5]
>>> stack.pop()
523 июня в 20:00 мск OTUS приглашает на открытый вебинар «Тестирование вёрстки с помощью Selenium и Python».
Вебинар бесплатный, но пройдет в рамках набора на онлайн-курс «Python QA Engineer».
Пройдите вступительный тест - и вам напомнят о вебинаре заранее: https://otus.pw/v5js/
На занятии разработаем собственный фреймворк сверки изображений.
Подключайтесь 23 июня, будет интересно и профессионально.
18 июня пройдет открытый практический вебинар «Модульные монолиты и DDD». Присоединяйтесь, будет интересно и профессионально: https://otus.pw/TJoR/
На открытом уроке будут рассмотрены основные паттерны для построения и написания модульных монолитов. Особое внимание будет уделено паттернам DDD.
Вебинар ведет руководитель программы, преподаватель-практик Станислав Щетинников (программирует больше 10 лет. Архитектурой систем занимается уже больше 6 лет.)
На данный момент директор разработки в Домклик. До этого несколько лет работал руководителем разработки в myTarget. Любит Data Science, python, golang, DDD и микросервисную архитектуру.
Вебинар проходит в рамках набора на профессиональный онлайн-курс «Архитектор программного обеспечения». Чтобы попасть на этот курс с welcome-скидкой, пройдите вступительный тест: https://otus.pw/x5oO/
8 июня в 20:00 (мск) – День Открытых Дверей онлайн-курса «Разработчик C++». Запишитесь: https://otus.pw/ifaq/
Встречу проведет преподаватель курса, Сергей Кольцов – TeamLead C++ в компании VisionLabs, опытный разработчик и инженер с более чем 10 летним стажем.
👉🏻 Первые 20 участников, зарегистрировавшихся на вебинар, получат Сертификат на скидку на электронную почту в течение 1-2 дней после трансляции.
👉🏻 Еще 10 сертификатов на скидку распределят в прямом эфире между теми, кто записался на вебинар.
Запись на участие в розыгрыше закрывается в день проведения вебинара в 16:00 (полные правила акции читайте на сайте https://otus.ru/legal/promo/) Применить Сертификат можно только после успешного прохождения вступительного тестирования.
Так что готовьте вопросы, сдавайте вступительный тест и присоединяйтесь: https://otus.pw/46IhU/
KaiCode - это первый в своём роде сбор на одной площадке авторов open source проектов, в Москве, 5 сентября.
Huawei спонсирует и организует. Отошлите им ссылку на свой GitHub проект, его рассмотрят и лучших пригласят на площадку для выступления и защиты. Три лучших проекта получают в руки по $5000 каждый и возможность дальнейшей поддержки от Huawei.
Пишите им в Телеграм группу @kaicode за подробностями и бесплатным билетом на вход.
Учимся работать с полями для пользовательского ввода и вывода данных, а также практикуемся в использовании кнопок
Tkinter: часть 4
Подходит ли вам онлайн-курс «Разработчик Golang»?
Фаст чек за 5 секунд:
- Хотите работать над сложным интересным софтом?
- Знаете, как потратить зарплату от 130 тыс. рублей?
- Подумываете устроиться в крупную IT-корпорацию?
- Готовы к 5 месяцам интенсивных занятий и практики?
- Имеете опыт разработки на любом языке ООП от 1 года и знаете Git?
Если ответили ДА на все вопросы, приходите в OTUS изучать Golang и писать на нем свой микросервис под руководством экспертов.
Проходите вступительный тест, чтобы успеть присоединиться к группе: https://otus.pw/NNOu/
В прошлых уроках мы научились рисовать графики и добавлять кнопки, в этом уроке мы с вами научимся располагать виджеты по нашему усмотрению
Tkinter: часть 3
@yegor256news - авторский англоязычный канал Егора Бугаенко, программиста, блоггера, автора Elegant Objects, создателя платформы Zerocracy и частого спикера на многих крупных IT-конференциях; подписывайтесь и следите за его творчеством!
Продолжаем осваивать модуль Tkinter, в этот раз учимся использовать Canvas и сразу же применяем его на практике
Tkinter: часть 2
С помощью Data Science уже много чего сделано. Но вот Средиземье, кажется, ещё никто не спасал.
А вот вы можете — на бесплатном онлайн-марафоне Нетологии. Вам предстоит добраться до Роковой горы, уничтожить Кольцо Всевластия и восстановить мир. Делать это будете с помощью SQL, Python и Machine Learning.
Регистрируйтесь, будет интересно ↓
http://netolo.gy/fw9
18–20 мая пройдёт бесплатный интенсив от Никиты Левашова, сооснователя и технического директора в Lia. В прямом эфире создадим программу для автоматического подбора паролей, расскажем, как проводить атаки и защищаться от них.
Подробности по ссылке: 👉 https://clc.to/K3MWHQ.
Почему Python — отличный выбор, если ты только начинаешь изучать программирование?
✔ Имеет предельно простой и дружественный синтаксис.
✔ Реализован практически на всех платформах и ОС.
✔ Позволяет разрабатывать любые IT-продукты.
✔ Востребован на рынке труда стартапами и компаниями-гигантами.
Регистрируйтесь и сделайте шаг к карьере в IT!
Начинаем новую серию уроков, где будем создавать приложения с пользовательским интерфейсом с помощью модуля Tkinter
Tkinter: часть 1
Изменение списка во время итерации по нему
Предположим, что требуется удалить все нечетные числа из списка. Проблема со следующим кодом должна быть довольно очевидной:
odd = lambda x: bool(x % 2)
#функция проверки числа на нечетность
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in range(10):
if odd(numbers[i]):
del numbers[i] # удаление элемента из списка во время итерации по нему
# Output:
Traceback (most recent call last):
if odd(numbers[i]):
IndexError: list index out of range
Удаление элемента из списка во время его итерации – это проблема, которая хорошо известна любому опытному разработчику.
К счастью, Python включает в себя ряд элегантных парадигм программирования, которые при правильном использовании могут привести к значительному упрощению и оптимизации кода. Одна из таких парадигм – list comprehensions. Генераторы списков часто используют именно для решение подобных проблем, что и показывает реализация кода ниже:
odd = lambda x: bool(x % 2)
# функция проверки числа на нечетность
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers = [n for n in numbers if not odd(n)] # генератор нового списка
print(numbers)
# Output:
[2, 4, 6, 8, 10]15 мая в 20:00 (мск) приглашаем на бесплатный вебинар: “Pytest: введение в автотесты”.
Пройдите вступительный тест из 20 вопросов на одном из самых популярных языков программирования в мире - Python. Если сможете сдать — пройдёте на продвинутый онлайн-курс для разработчиков: https://otus.pw/Razf/
Оператор pass делает абсолютно ничего, то есть совсем ничего.
В ходе исполнения данного оператора ничего не происходит, поэтому он может использоваться в качестве некой заглушки в тех местах, где это синтаксически необходимо.
Например, вам надо сделать несколько функций, вы написали def'ы и названия, но сам код еще не успели, однако программу надо запустить и проверить что-то другое. Вот тут и понадобится pass.
def func():
pass
Ну или в конструкции try-except, чтобы просто проигнорировать и никак не обрабатывать ошибку в программе.
try:
any_function()
except:
pass
В общем, полезная штука, используйте.Открыт новый набор на практический онлайн-курс «Разработчик Golang».
Пройдите тест и успейте поступить с максимальной скидкой: https://otus.pw/Hq4X/
Что ждет вас на курсе? Вот отзывы выпускников прошлых групп:
• «Рассчитан на подготовленных людей, т.к. кода в домашках будет много, но взамен получите хорошую практику разработки»
• «Курс даст крепкую базу middle разработчика»
• «Выпускной проект сложный, но интересный, в портфолио можно смело класть (проверено)».
Освойте и вы этот универсальный актуальный язык на профессиональном уровне за 5 месяцев!
Проходите вступительный тест и присоединяйтесь к закрытому сообществу знатоков Golang.
