Python задачки
13.4K subscribers
501 photos
102 links
Задачки по питону:
алгоритмы, регулярные выражения, вопросы с интервью, задачи для Junior Python Developer.


По вопросам рекламы: @anothertechrock

РКН: https://kurl.ru/cYPzu
加入频道
Каким будет вывод этой функции в консоли?
list(enumerate([2, 3]))
Anonymous Quiz
11%
Ошибка
15%
[(1, 2), (2, 3)]
46%
[(0, 2), (1, 3)]
20%
[(2, 3)]
9%
Посмотреть ответ
Каким будет вывод этого кода в консоли?
Anonymous Quiz
61%
True
11%
False
11%
Ошибка
9%
Никакого вывода не будет
8%
Посмотреть ответ
Как проверить, содержит ли строка text подстроку?
text = "Testing is fun, isn't it?"
Anonymous Quiz
4%
text.index("Testing") == None
27%
text.contains("Testing")
10%
text.find("Testing") == -1
54%
"Testing" in text
5%
Посмотреть ответ
Каким будет вывод этого кода в консоли?
not (100 < 200) and not (100 > 300)
Anonymous Quiz
14%
True
68%
False
6%
Ошибка
9%
Никакого вывода не будет
3%
Посмотреть ответ
🧐Ваш код работает. Но точно ли?

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

На открытом вебинаре «Искусство тестирования с pytest» 18 марта в 20:00 (мск):

- Разбирем основы pytest: пишем тесты, запускаем, отлавливаем ошибки
- Освоим фикстуры и параметризацию — меньше дублирования, больше гибкости
- Оптимизируем тестирование: ускорим процесс и выстроим структуру проекта

Всем участникам — скидка на большое обучение «Python Developer. Professional».

⚡️Пишите код, который не ломается. Регистрируйтесь прямо сейчас: https://otus.pw/AiTj/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Как перевести строку text в верхний регистр?
text = "pythonquestions"
Anonymous Quiz
10%
text.UPPER()
71%
text.upper()
10%
text.capitalize()
6%
text.toUpperCase()
3%
Посмотреть ответ
⚙️REST — это классика, но далеко не всегда лучший вариант. GraphQL, gRPC и HATEOAS открывают новые возможности в API, позволяя сделать взаимодействие с сервисами быстрее, гибче и удобнее.

Как выбрать подходящий инструмент? Где gRPC — спасение, а где GraphQL — ловушка? Почему REST уже не везде актуален? Разбираемся в архитектурах API на открытом уроке.

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

Спикер Валентин Шилин — старший программист с опытом более 15 лет на С++, С#, JavaScript, Python, Scala, Java; аналитик данных; эксперт в обработке больших данных с помощью Scala/Spark и Hadoop Cloudera.

⚡️Встречаемся 26 марта в 20:00 мск — откроем API по-новому! Участников ждёт скидка на большое обучение «Python Developer. Professional»: https://otus.pw/4pdOm/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🤿Погружение в профессиональный Python без воды: только практика, только реальный код.

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

На обучении «Python Developer. Professional» вы освоите:

- Асинхронное программирование — ускоряем код, работаем с потоками
- Паттерны проектирования — код, который легко поддерживать
- Производительность и безопасность — от профилирования до защиты
- FastAPI, Django, RESTful API — масштабируем и автоматизируем веб-приложения
- ML и работу с данными — Pandas, NumPy, Matplotlib в боевых задачах

Программа обновляется под реальные требования рынка, а диплом OTUS ценится в IT-компаниях.

Набор скоро закроется! Пройдите вступительное тестирование и получите скидку на обучение: https://otus.pw/96eD/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Как проверить, является ли строка s палиндромом?
s = "radar"
Anonymous Quiz
63%
s == s[::-1]
28%
s == reversed(s)
5%
s[0] == s[-1]
4%
Посмотреть ответ
⚡️Какой основной инструмент работы у аналитика?

Pandas - инструмент, который делает жизнь аналитика проще и приятней, а работу - эффективней.

Научиться работать с Pandas на реальных задачах бизнеса можно на бесплатном курсе от Simulative.

За неделю обучения вы:
🟠Освоите Pandas с нуля до продвинутых функций: сложная агрегация, оконные функции и т.д.
🟠Научитесь решать реальные аналитические задачи: проводить многомерный ABC-анализ, XYZ-анализ, рассчитывать динамику продаж.
🟠Сделаете собственный проект, который сможете добавить в портфолио: реальный кейс автоматизации обработки финансовой отчетности от крупной региональной аптечной сети

🕗 Обучение проходит на платформе школы

😶Начать учиться Pandas
Please open Telegram to view this post
VIEW IN TELEGRAM
Как найти сумму всех чисел в списке?
lst = [1, 2, 3, 4, 5]
Anonymous Quiz
17%
for x in lst: total += x
73%
sum(lst)
1%
lst.addAll()
6%
reduce(lambda x, y: x + y, lst)
3%
Посмотреть ответ
От чего зависит эффективность автотестов?

От их правильного написания и поддерживаемости!

В QA GURU мы учим приручать Java, чтобы ваши автотесты работали, как часы. Вот несколько лайфхаков, о которых мы расскажем на вводном занятии уже сегодня (20:00 Мск):

1. Используйте понятные и описательные названия тестов

Названия тестов должны четко отражать их цель. Это упрощает понимание кода всеми членами команды.

Например:

// Хорошо
public void verifyLoginWithValidCredentials() { ... }


// Плохо
public void test1() { ... }


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

2. Применяйте Page Object Model (POM)

Page Object Model позволяет отделить логику теста от структуры веб-страницы, что делает код более модульным и удобным для поддержки при изменениях интерфейса.

Пример использования:

// Класс

Page Object
public class LoginPage {
private By usernameField = By. id("username");
private By passwordField = By. id("password");
private By loginButton = By. id("loginBtn");

public void enterUsername(String username) {
driver.findElement(usernameField).sendKeys(username);
}

public void enterPassword(String password) {
driver.findElement(passwordField).sendKeys(password);
}

public void clickLoginButton() {
driver.findElement(loginButton).click();
}
}

// Тестовый сценарий

LoginPage loginPage = new LoginPage(driver);
loginPage.enterUsername("john.doe");
loginPage.enterPassword("password123");
loginPage.clickLoginButton();


POM способствует повторному использованию кода и улучшает читаемость тестов.

3. Используйте параметризацию и data-driven подход


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

@ ParameterizedTest
@ CsvSource({"john.doe, password123", "jane.smith, test@123"})
public void verifyLogin(String username, String password) {
LoginPage loginPage = new LoginPage(driver);
loginPage.enterUsername(username);
loginPage.enterPassword(password);
loginPage.clickLoginButton();
}

Этот подход делает тесты более гибкими и масштабируемыми.

4. Следуйте принципу AAA (Arrange, Act, Assert)


Структурируйте тесты в три этапа:

Arrange: подготовка данных и окружения.

Act: выполнение действия.

Assert: проверка результата.

Пример:

@ Test
public void testAddition() {
// Arrange
Calculator calculator = new Calculator();

// Act
int result = calculator.add(2, 3);

// Assert
assertEquals(5, result);
}


Этот подход делает тесты более организованными и легко читаемыми.

5. Логирование и отчетность

Добавляйте логирование в тесты для диагностики проблем:

log. info("Entering username: " + username);
log. info("Clicking on the login button");

Интеграция инструментов отчетности (например, Allure) помогает визуализировать результаты тестов и быстро выявлять ошибки.

6. Регулярные ревью кода

Проводите регулярные ревью автотестов для повышения качества кода. Это помогает выявить потенциальные проблемы, улучшить читаемость и обеспечить соблюдение стандартов кодирования.

7. Автоматизация и CI/CD

Используйте инструменты автоматизации (Maven, Gradle) для запуска тестов в рамках CI/CD пайплайнов. Это ускоряет процесс разработки и обеспечивает стабильность приложения на всех этапах.

Хотите узнать больше? Присоединяйтесь сегодня (20:00 Мск) к нашему бесплатному открытому уроку!

🔗 Зарегистрируйтесь на первый открытый урок по ссылке.