PythonBoost - сообщество питонистов
12.4K subscribers
292 photos
6 videos
542 links
Лучший Python телеграм канал для новичков.

Цель: подготовка студентов, начинающих питонистов к нахождению первой работы.

@anothertechrock

РКН: https://kurl.ru/Jhcwp
加入频道
Ответ к предыдущей задаче для новичков.

def group_by_age(people):
result = {}
for name, age in people:
if age in result:
result[age].append(name)
else:
result[age] = [name]
return result

#новичок #coбес
Задача для новичков.

Напишите функцию is_valid(), которая принимает на вход скобочную последовательность (строку состоящую исключительно из символов '(', ')', '{', '}', '[', ']'). Данная функция должна возвращать True если скобочная последовательноть является правильной и False в противном случае.
Скобочная последовательность считается правильной если:
- каждая открытая скобка закрыта скобкой того же вида, то есть (), {}, [];
- открытые скобки закрыты в правильно порядке, то есть последовательность ({}) правильная, а ({)} нет;

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

is_valid("()[]{}") --> True
is_valid("(]") --> False

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def is_valid(s: str) -> bool:
stack = []
pairs = {')': '(', '}': '{', ']': '['}
for c in s:
if c in pairs:
if not stack or stack[-1] != pairs[c]:
return False
stack.pop()
else:
stack.append(c)
return not stack

#pythonзадача #coбес
Pythonist — официальный канал сайта pythonist.ru.

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

На канале можно найти:

разбор вопросов с собеседований;
задачи на логику
книги;
алгоритмы;
тесты;
Django.

Подписывайтесь, чтобы полноценно прокачиваться в Python: @pythonist_ru
Тест. Списки (уровень — лёгкий)

Списки в Python — упорядоченные изменяемые коллекции объектов произвольных типов (почти как массив, но типы могут отличаться). Хорошо ли вы умеете пользоваться ими? Пройдите тест по спискам из 10 вопросов и проверьте!
Статья дня. Как скачать видео с YouTube при помощи Python

YouTube позволяет сохранять видео в папке загрузок для просмотра в автономном режиме. Тем не менее, вы не можете сохранять их локально.

Из этого руководства вы узнаете, как написать код на Python для загрузки видео с YouTube. Вероятно, вам известно, что одним из достоинств Python является огромное количество модулей и библиотек. Мы напишем скрипт, используя популярный пакет pytube.

Читать статью

#читать
Задача для новичков.

Напишите функцию remove_element(), которая принимает два аргумента: целочисленный массив nums и целое число val. Данная функция должна вернуть массив, из которого удалены все элементы равные val и количество элементов в этом массиве.

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

remove_element([3, 2, 2, 3], 3) --> ([2, 2], 2)
remove_element([3, 2, 5, 5, 2, 3, 5, 1, 6], 5) --> ([3, 2, 2, 3, 1, 6], 6)

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def remove_element(nums, val):
k = 0
for i in range(len(nums)):
if nums[i] != val:
nums[k] = nums[i]
k += 1
nums = nums[:k]
return nums, k

#pythonзадача #coбес
Задача для новичков.

Есть лестница, состоящая из n ступенек. Вы можете за один шаг подниматься на 1 или на 2 ступеньки. Напишите функцию climbStairs(), которая бы подсчитывала количество всех возможных вариантов подняться на эту лестницу.

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

climbStairs(5) —> 8
climbStairs(8) —> 34
climbStairs(35) —> 14930352

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def climbStairs(n: int) -> int:
if n <= 2:
return n

dp = [0] * (n + 1)
dp[1] = 1
dp[2] = 2

for i in range(3, n + 1):
dp[i] = dp[i - 1] + dp[i - 2]

return dp[n]

Подумайте также как можно решить эту задачу, если существует возможность еще подниматься сразу на 3 ступеньки.

#pythonзадача #coбес
Видео дня. Делаем безопасную перезапись файла с помощью менеджера контекста

Контекстные менеджеры - очень полезная штука в Python. Давайте разберем использование context manager на примере atomic write. Т.е., если в процессе записи информации в файл произойдет ошибка, мы должны откатиться к предыдущей версии файла.

Ссылка на YouTube

#видео
Тест. Работа с числовыми выражениями в Python

Работа с числовыми выражениями — ежедневная рутина разработчика. Они постоянно используются в вычислениях, переменных, функциях, методах и условиях. Тема, в общем-то, простая, но в ней довольно легко запутаться и допустить ошибку.

Проверьте, насколько хорошо вы разбираетесь в числовых выражениях: пройдите тест из 10 вопросов!
Задача для новичков.

Напишите функцию containsNearbyDuplicate(self, nums: list[int], k: int) -> bool, которая принимает на вход массив целых чисел nums и целое число k. Данная функция должна возвращать True если в массиве есть два различных индекса i и j, такие что nums[i] == nums[j] и abs(i - j) <= k. В противном случае возвращается False.

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

containsNearbyDuplicate([1,2,3,1], 3) --> True
containsNearbyDuplicate([1,0,1,1], 1) --> True
containsNearbyDuplicate([1,2,3,1,2,3], 2) --> False

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def containsNearbyDuplicate(nums: list[int], k: int) -> bool:
num_dict = {}

for i in range(len(nums)):
if nums[i] in num_dict and abs(i - num_dict[nums[i]]) <= k:
return True
num_dict[nums[i]] = i

return False

#pythonзадача #coбес
Задача для новичков.

Напишите функцию addDigits(), которая принимает на вход целое число. На выходе она должна вернуть сумму всех цифр числа, причем ответ должен состоять только из одной цифры. Например, addDigits(38) --> 3 + 8 = 11 (число состоит из двух цифр, значит складывает дальше) --> 1 + 1 = 2. Таким образом, результат работы функции равен 2.

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

addDigits(355) --> 4
addDigits(2499) --> 6
addDigits(597) --> 3

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def addDigits(num: int) -> int:
if len(str(num)) == 1:
return num
else:
return addDigits(sum(list(int(i) for i in str(num))))

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

#pythonзадача #coбес
Каким будет вывод в консоли следующего кода?
>>>list("a#b#c#d".split('#'))
Anonymous Quiz
70%
['a', 'b', 'c', 'd']
9%
['a b c d']
8%
['a#b#c#d']
9%
['abcd']
4%
Посмотреть ответ
Тест. Итераторы в Python (уровень Junior)

Итераторы — самая простая форма итерируемых объектов в Python. Любой итерируемый объект реализует протокол итератора.

Проверьте, насколько хорошо вы знаете эту тему: пройдите тест из 10 вопросов!