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

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

@anothertechrock

РКН: https://kurl.ru/Jhcwp
加入频道
Кодинг-марафон. Задача № 5.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

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

Примеры:

same_length (110011100010) ➞ True

same_length (101010110) ➞ False

same_length (111100001100) ➞ True

same_length (111) ➞ False

Присылаем номер задачи и ссылку на код сюда - @vovabodnar

#задача #марафон2
Кодинг-марафон. Решение Задачи 5

Функцию для сверки последовательностей нулей и единиц можно посмотреть на сайте наших партнеров из pythonist.ru

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2
Кодинг-марафон. Задача № 6.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

Гарри — почтальон. У него есть почтовый участок размером n * m (матричный / 2D-список). Каждый слот в 2D-списке представляет количество писем в этом месте.

Гарри может идти только вправо и вниз. Он начинает обход в (0, 0) и заканчивает в (n-1, m-1). n представляет высоту, а m — длину матрицы.

Письма Гарри может брать только там, где находится.

Напишите функцию, возвращающую максимальное количество писем, которое Гарри может подобрать.

Примеры:

harry([[5, 2], [5, 2]]) ➞ 12
# (5+5+2)

harry([
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]
]) ➞ 72
# (1+6+11+12+13+14+15)

harry([[]]) ➞ -1

Примечание. Как вы видели в примере 3, если матрица пуста, верните -1.

Присылаем номер задачи и ссылку на код сюда - @vovabodnar

#задача #марафон2
Кодинг-марафон. Решение Задачи 6

Функцию, возвращающую максимальное количество писем, которое может подобрать почтальон, можно посмотреть на сайте наших партнеров из pythonist.ru

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2
Кодинг-марафон. Задача № 7.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

Есть список названий животных:

animals = ["dog", "cat", "bat", "cock", "cow", "pig", "fox", "ant", "bird", "lion", "wolf", "deer", "bear", "frog", "hen", "mole", "duck", "goat"]

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

Примеры:

txt = "goatcode"
count_animals(txt) ➞ 2

# первое животное = "dog"
# оставшиеся символы в строке = "atcoe",
# второе животное = "cat".
# count = 2 (верно)

# если взять сперва "goat",
# оставшиеся символы в строке = "code",
# т.е. больше нельзя составить имен животных
# count = 1 (неверно)


count_animals("goatcode") ➞ 2
# "dog", "cat"

count_animals("cockdogwdufrbir") ➞ 4
# "cow", "duck", "frog", "bird"

count_animals("dogdogdogdogdog") ➞ 5

Номер задачи и ссылку на код шлём @vovabodnar

#задача #марафон2
Задача с решением. Сортировка кортежа из целых чисел

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

Пишите ваше решение в комментариях. Мы опубликуем решение через 3 часа.

#задача #задача33
Кодинг-марафон. Решение Задачи 7

Функцию, возвращающую максимальное количество названий животных, можно посмотреть на сайте наших партнеров из pythonist.ru

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2
Кодинг-марафон. Задача № 8.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

Эта задача основана на игре сапер.
Создайте функцию, которая принимает сетку из "#" и "-". Каждая решетка (#) представляет мину, а каждое тире (-) - место без мин.

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

Примеры:

num_grid ([
[«-», «-», «-», «-», «-»],
[«-», «-», «-», «-», «-»],
[«-», «-», «#», «-», «-»],
[«-», «-», «-», «-», «-»],
[«-», «-», «-», «-», «-»]
]) ➞ [
[«0», «0», «0», «0», «0»],
[«0», «1», «1», «1», «0»],
[«0», «1», «#», «1», «0»],
[«0», «1», «1», «1», «0»],
[«0», «0», «0», «0», «0»],
]

num_grid ([
[«-», «-», «-», «-», «#»],
[«-», «-», «-», «-», «-»],
[«-», «-», «#», «-», «-»],
[«-», «-», «-», «-», «-»],
["#", "-", "-", "-", "-"]
]) ➞ [
[«0», «0», «0», «1», «#»],
[«0», «1», «1», «2», «1»],
[«0», «1», «#», «1», «0»],
[«1», «2», «1», «1», «0»],
[«#», «1», «0», «0», «0»]
]

num_grid ([
[«-», «-», «-», «#», «#»],
[«-», «#», «-», «-», «-»],
[«-», «-», «#», «-», «-»],
[«-», «#», «#», «-», «-»],
[«-», «-», «-», «-», «-»]
]) ➞ [
[«1», «1», «2», «#», «#»],
[«1», «#», «3», «3», «2»],
[«2», «4», «#», «2», «0»],
[«1», «#», «#», «2», «0»],
[«1», «2», «2», «1», «0»],
]

Присылаем номер задачи и ссылку на код сюда - @vovabodnar

#задача #марафон2
Задача с решением. Самый большой словарь в мире

Иван решил создать самый большой словарь в мире. Для этого он придумал функцию biggest_dict(**kwargs), которая принимает неограниченное количество параметров «ключ: значение» и обновляет созданный им словарь my_dict, состоящий всего из одного элемента «first_one» со значением «we can do it». Воссоздайте эту функцию.

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

Пишите ваше решение в комментариях. Мы опубликуем решение через 3 часа.

#задача #задача34
Кодинг-марафон. Решение Задачи 8

Функцию, возвращающую “разминированное поле”, можно посмотреть на сайте наших партнеров из pythonist.ru

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2
Кодинг-марафон. Задача № 9.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

Слово «двуликий» состоит из 8 букв. Байт в двоичном формате имеет 8 бит. Байт может представлять символ.

Мы можем использовать слово «двуликий» для выражения слов в двоичном формате, если используем заглавные буквы как единицы, а строчные — как нули.

Создайте функцию, которая будет переводить слово в виде обычного текста в «двуликий код».

Примеры:

translator("Hi") ➞ "дВулИкий дВУлИкиЙ"
translator("123") ➞ "двУЛикиЙ двУЛикИй двУЛикИЙ"

Примечание: переводите слова, написанные латиницей, и цифры. За перевод кириллицы - дополнительный балл.

Присылаем номер задачи и ссылку на код сюда - @vovabodnar

#задача #марафон2
Задача с решением. Меняем местами первый и последний элемент списка

Напишите функцию change(lst), которая принимает список и меняет местами его первый и последний элемент. В исходном списке минимум 2 элемента.

Пишите ваше решение в комментариях. Мы опубликуем решение через 3 часа.

#задача #задача35
Кодинг-марафон. Решение Задачи 9

Функцию для перевода обычных слов в “двуликий код” можно посмотреть на сайте наших партнеров из pythonist.ru

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2
Кодинг-марафон. Задача № 10.

Условия конкурса - в закрепленной сверху записи канала.

Приз: 10 баллов.

Задание:

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

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

Примеры:

can_exit([
[0, 1, 1, 1, 1, 1, 1],
[0, 0, 1, 1, 0, 1, 1],
[1, 0, 0, 0, 0, 1, 1],
[1, 1, 1, 1, 0, 0, 1],
[1, 1, 1, 1, 1, 0, 0]
]) ➞ true

can_exit([
[0, 1, 1, 1, 1, 1, 1],
[0, 0, 1, 0, 0, 1, 1],
[1, 0, 0, 0, 0, 1, 1],
[1, 1, 0, 1, 0, 0, 1],
[1, 1, 0, 0, 1, 1, 1]
]) ➞ false
# В этом лабиринте одни тупики!

can_exit([
[0, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 0, 1, 0, 0],
[1, 1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1]
]) ➞ false
# Выход так близко, но недостижим!

can_exit([
[0, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 0, 1, 0, 0],
[1, 1, 1, 0, 0, 0, 0],
[1, 0, 0, 0, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 0]
]) ➞ true

Примечания:

1. В лабиринте размером m x n вы входите в [0, 0] и выходите в [m-1, n-1].

2. За эту задачу можно будет получить дополнительные 10 балов (т.е. всего 20), если сделать визуализацию алгоритма поиска пути при помощи модуля turtle либо его аналогов.

3. Также эту задачу не обязательно сдавать на repl.it - страницы на гитхабе либо просто файла будет достаточно.

Присылаем номер задачи и ссылку на код сюда - @vovabodnar

#задача #марафон2
Задача с решением. Превращаем строку или список чисел в множество

На входе функция to_set() получает строку или список чисел. Преобразуйте их в множество. На выходе должно получиться множество и его мощность.

Пишите ваше решение в комментариях. Мы опубликуем решение через 3 часа.

#задача #задача36
Кодинг-марафон. Решение Задачи 10

Наш вариант функции для проверки лабиринта на проходимость и два решения с визуализациями от участников марафона можно посмотреть на сайте наших партнеров из pythonist.ru

Смотреть решение

Условия конкурса - в закрепе канала.

#задача #марафон2
Задача с решением. Ищем подстроку в строке

Напишите функцию search_substr(subst, st), которая принимает 2 строки и определяет, имеется ли подстрока subst в строке st.

В случае нахождения подстроки, возвращается фраза «Есть контакт!», а иначе - «Мимо!».

Совпадение должно быть найдено независимо от регистра обеих строк.

Пишите ваше решение в комментариях. Мы опубликуем решение через 3 часа.

#задача #задача37
Задача с решением. Найдите ошибки в коде

Николай написал функцию is_alive(health), которая проверяет здоровье персонажа в игре. Если оно равно или меньше нуля, то функция возвращает False, в противном случае True. К сожалению, функция не работает, так как ученик допустил в ней ряд ошибок. Исправьте их и проверьте работоспособность программы (в качестве аргумента всегда передается число).

def is_alive(health):
if:
health < 0
False
else:
return true

Пишите о найденных ошибках в комментариях. Мы опубликуем ответ через 3 часа.

#задача #задача38
👍1
Задача с решением. Какие из представленных выражений можно преобразовать в целое десятичное число за одну операцию?

А) '123е'
Б) '91.4'
В) 524.345 ** 435345345311145345
Г) '7.1 + 4'
Д) '4' - 2
Е) '4 - 2'
Ж) '42'
З) -12.12

Пишите ваше решение в комментариях. Мы опубликуем решение через 3 часа.

#задача #задача39