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

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

@anothertechrock

РКН: https://kurl.ru/Jhcwp
加入频道
Тест. Цикл while

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

def zeros(n):
return 0 if n < 5 else n / 5 + zeros(n / 5)

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

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

Напишите функцию под названием in_array(), которая принимает два массива со строками, a1 и a2, и возвращает отсортированный в лексикографическом порядке массив r, состоящий из строк из массива a1, которые все являются подстроками строк из массива a2.

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

a1 = ["arp", "live", "strong"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
in_array(a1, a2) --> ["arp", "live", "strong"]
a1 = ["tarp", "mice", "bull"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
in_array(a1, a2) --> []

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

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

def in_array(a1, a2):
return sorted({sub for sub in a1 if any(sub in s for s in a2)})

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

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

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

persistence(39) --> 3 так как 3*9 = 27, 2*7 = 14, 1*4 = 4, а 4 состоит из одной цифры.
persistence(999) --> 4 так как 9*9*9 = 729, 7*2*9 = 126, 1*2*6 = 12 и наконец 1*2 = 2
persistence(4) --> 0
так как 4 и так состоит из одной цифры.

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

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

from functools import reduce

def persistence(n):
if len(str(n)) == 1:
return 0
else:
return 1 + persistence(reduce(lambda a, b : a * b, [int(i) for i in str(n)]))

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

#pythonзадача #coбес
Тест. Словари Python для профессионалов

Тест состоит из 10 вопросов. Поскольку это повышенный уровень, большинство вопросов требуют более углубленных знаний языка Python и опыта работы с ним, так что если что-то не получается, советуем не отчаиваться, а продолжать свое обучение.
Каким будет вывод следующего кода в консоли?
>>> "Welcome to Python".split()
Anonymous Quiz
66%
["Welcome", "to", "Python"]
11%
("Welcome", "to", "Python")
2%
{"Welcome", "to", "Python"}
15%
"Welcome", "to", "Python"
5%
Посмотреть ответ
Задача для новичков.

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

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

removeDuplicates([0,0,1,1,1,2,2,3,3,4]) --> ([0, 1, 2, 3, 4], 5)
removeDuplicates([5, 5, 3, 10, 0, 10]) --> ([0, 3, 5, 10], 4)

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

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

def removeDuplicates(nums):
if len(nums) == 0:
return 0
k = 1
x = sorted(nums)
for i in range(1, len(x)):
if x[i] != x[i-1]:
x[k] = x[i]
k += 1
return x[:k], k

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

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

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

people = [("Alice", 25), ("Bob", 30), ("Charlie", 25), ("Dave", 35)]

result = group_by_age(people)

# Результат: {'25': ['Alice', 'Charlie'], '30': ['Bob'], '35': ['Dave']}

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

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

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

#pythonзадача #coбес
Тест. Основы Python

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