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

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

Канал не для senior python developers и даже не для middle, хотя и вам будет что посмотреть.

С рекламой: @anothertechrock
@aldrson
Download Telegram
Кодинг-марафон. Решение Задачи 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
Задача с решением. Какие из представленных выражений можно преобразовать в целое десятичное число за одну операцию?

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

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

#задача #задача39
Задача с решением. Только не 6!

Напишите функцию dislike_6(a), которая всегда возвращает True, если только не передается число 6 типа int или типа float (в данном случае она вернет «Только не 6!»).

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

#задача #задача40
Задача с решением. Среднее арифметическое

Дано 4 числа. Нужно написать функцию avg_5(a, b, c, d), которая возвращает среднее арифметическое аргументов и округляет его до 5 знаков после запятой.

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

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

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

К слову, вот этот список: Мавпродош, Лорнектиф, Древерол, Фиригарпиг, Клодобродыч.

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

Ваша задача такова: повторите код, который будет спрашивать у пользователя его ник и либо пускать на сайт (выведется сообщение «Ты – свой. Приветствую, любезный {НИК_ПОСЕТИТЕЛЯ}!»), либо нет (в этом случае будет такой текст: «Тут ничего нет. Еще есть вопросы?».

Фактически, будущий супергерой решил поиздеваться над теми, кого нет в его удивительном перечне, так как им будет показываться это сообщение постоянно. Очень коварный замысел!). Для проверки прозвищ посетителей используйте встроенную функцию input().

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

#задача #задача42