Pythonist.ru - образование по питону
26.2K subscribers
84 photos
1 video
947 links
Pythonist.ru - помощь в подготовке к собеседованию на позицию Python Developer.
Реклама: @anothertechrock

Контент канала:
1. Разбор вопросов с собеседований
2. Книги
3. Задачи на логику
4. Проект Эйлера
5. Видео
6. Тесты по Python 3

@aldrson
Download Telegram
Задача с кодом. Разбивка строки по заглавным буквам

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

Примеры:

cap_space("helloWorld") ➞ "hello world"
cap_space("iLoveMyTeapot") ➞ "i love my teapot"
cap_space("stayIndoors") ➞ "stay indoors"

Решение на нашем сайте.

#задача #coding
Tips & Tricks. Применение срезов списков без указания индексов в Python

При использовании срезов списков индексы элементов можно вообще не указывать. Это позволяет делать интересные вещи.

#tipsandtricks #списки
Задача на логику. За сколько дней ленивец вскарабкается на столб?

Ленивец пытается взобраться на скользкий столб. За день он поднимается на 6 метров, но за ночь сползает на 5. Столб имеет высоту 30 метров, а ленивец начинает свой путь с земли (0 метров). Сколько дней ему понадобится, чтобы вскарабкаться на вершину столба?

Решение тут. Просьба потратить хотя бы 10 минут перед тем как читать решение.

#логическаязадача
Функция main() в Python

Несомненно, в Python нет так называемой главной входной функции, однако в Интернете часто встречаются статьи, в которых упоминается "main-функция Python" и "предлагается написать функцию main".

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

В этой статье мы поговорим о том, почему в Python нет функции main.

#функции
Тест. Строки и символьный тип

Строки - одна из самых важных и интересных тем в Python. Проверьте, насколько хорошо ее знаете!

#тест #строки
Топ. Что такое глобальная блокировка интерпретатора Python (GIL)?

Python Global Interpreter Lock (глобальная блокировка интерпретатора), или GIL, простыми словами, представляет собой мьютекс (или блокировку), который позволяет только одному потоку контролировать интерпретатор Python.

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

#топ
Задача с кодом. Подсчет цифр

Напишите функцию, подсчитывающую количество одинаковых цифр в числе.

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

Разбор примера
digit_count(136116) ➞ 312332
# Цифра 1 появляется трижды, поэтому все единицы заменяются на тройки.
# Цифра 3 появляется только один раз, поэтому тройка заменяется единицей.
# Цифра 6 появляется дважды, поэтому обе шестерки заменяются двойками.
# Возвращается целое число.

Другие примеры
digit_count(221333) ➞ 221333
digit_count(136116) ➞ 312332
digit_count(2) ➞ 1

Решение на нашем сайте.

#задача #coding
Tips & Tricks. Сравнение неупорядоченных списков

Рассказали, как эффективно по отношению к памяти сравнить два неупорядоченных списка.

#tipsandtricks #списки
Задача на логику. Два города

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

Предположим, вы оказались в одном из этих городов. Как, задав один-единственный вопрос первому встречному, определить, в какой город вы попали?

#логическаязадача
Ответ к задаче "Два города"

Нужно просто спросить, живет ли человек в этом городе. Если он ответит "да", то это город честных. Если "нет" - город лжецов.

#логическаязадача
Функции. Удаление файла — пошаговое руководство

Рассказываем, как удалять файлы при помощи методов os.remove(), os.rmdir() и shutil.rmtree().

#модули #функции
Задача для новичков

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

Пример работы данной функции:

findMissedNumbers([4,3,2,7,8,2,3,1]) --> [5, 6]
findMissedNumbers([1, 1, 1]) --> [2, 3]

Свои варианты пишите в комментариях! Решение - сегодня вечером.

#задача #coding
Ответ к предыдущей задаче для новичков

def findMissedNumbers(nums: list[int]) -> list[int]:
return [i for i in range(1, len(nums) + 1) if i not in nums]

А вот более быстрый вариант, который работает за линейное время:

def findMissedNumbers(nums: list[int]) -> list[int]:
return list(set(range(1, len(nums) + 1)) - set(nums))

#задача #coding
Tips & Tricks. Как проверить наличие ключа в словаре в Python

В этом уроке мы рассмотрим четыре наиболее часто используемых способа проверки существования ключа в словаре на языке Python.

#tipsandtricks #словари
Задача с кодом. Бит четности

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

- Если двоичная строка содержит нечетное количество единиц, бит четности — 1.
- Если двоичная строка содержит четное количество единиц, бит четности — 0.
- Бит четности добавляется в конец двоичной строки.

Задание
Создайте функцию, которая будет при помощи битов четности проверять, валидна ли двоичная строка.

Рабочий пример
 validate_binary("10110010") ➞ True
# Последняя цифра - бит четности.
# 0 - последняя цифра.
# 0 означает, что число единиц должно быть четным.
# Здесь 4 единицы.
# Возвращаем True.

Другие примеры
validate_binary("00101101") ➞ True
validate_binary("11000000") ➞ True
validate_binary("11000001") ➞ False

Примечание: в инпуте всегда будет 8 символов (байт).

Решение на нашем сайте.

#задача #coding
Tips & Tricks. Замер времени выполнения куска кода

Модуль timeit позволяет замерить время выполнения любого куска кода.

#tipsandtricks #модули
Задача на логику. Четыре человека, один подвесной мост и зомби, следующие по пятам

Студент, лаборантка, уборщик и старый профессор бегут от зомби. Впереди у них подвесной мост. Если они успеют его перейти, смогут обрезать веревки и оторваться от зомби. Но!

Все беглецы движутся с разной скоростью: студент может перебежать мост за минуту, лаборантка — за 2 минуты, уборщику понадобится 5 минут, старый профессор доковыляет за 10.

Профессор подсчитал, что зомби доберутся до моста через 17 минут. А мост одновременно может выдержать только двоих! Да еще и ночь: ничего не видно. У группы есть только один фонарь, и им придется передавать его друг другу, потому что у идущих по мосту (одного или двоих) фонарь должен быть обязательно.

Как всем успеть перейти через мост до прихода зомби?

Решение тут. Просьба потратить хотя бы 10 минут перед тем как читать решение.

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

В этой статье:

1. Pyperclip
2. Emoji
3. Wikipedia
4. Howdoi
5. Antigravity
6. urllib
7. Turtle

#модули
Тест. Числовой тип в Python

Числовой тип в Python довольно прост и интуитивно понятен. Но, разумеется, прост он для тех, кто разобрался в теме. А вы хорошо разобрались? Проверьте: пройдите наш тест!

#тест
Как работает функция return() в Python?

Для получения значения из функции в языках программирования обычно используется оператор return(). Точно так же и в Python оператор return() используется для выхода из функции и возврата значения из функции. В этом уроке мы рассмотрим различные способы использования return() в Python.

#функции
Tips & Tricks. Unexpected exception

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

#tipsandtricks