Кодинг-марафон. Задача 9.

Напишите функцию, которая будет возвращать строку, представляющую собой ASCII-рисунок ромба. Функция должна иметь сигнатуру def diamond(letter: str, background: str=' ') -> str:

Функция получает на вход одну букву латинского алфавита в верхнем регистре и один символ, который будет использован в качестве фона для рисунка:

    >> diamond('A')
    A

    >> diamond('B')
     A
    B B
     A

    >> diamond('D', '-')
    ---A---
    --B-B--
    -C---C-
    D-----D
    -C---C-
    --B-B--
    ---A---

КАЖДАЯ строка рисунка заканчивается символом \n, на вход может подаваться любая из 26 букв латинского алфавита и любой ASCII-символ как параметр background. Предполагается, что ввод всегда валиден, не нужно проверок и исключений.

Решение

from string import ascii_uppercase


def diamond(letter: str, background: str = ' ') -> str:
    length = ascii_uppercase.index(letter)
    template = [[background for __ in range(length * 2 + 1)] for _ in range(length + 1)]
    template[0][length] = 'A'
    for index in range(1, len(template)):
        template[index][length - index] = ascii_uppercase[index]
        template[index][-(length - index) - 1] = ascii_uppercase[index]
    template.extend(list(reversed(template))[1:])
    return '\n'.join(''.join(_) for _ in template) + '\n'
Марина

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago