Python: 18 задач на вывод символов по заданному шаблону

от автора

Подготовка к техническому собеседованию по Python — нелёгкая задача. На таком собеседовании вам, вполне возможно, встретятся задачи на вывод символов по заданным шаблонам. Если вы хотите научиться решать такие задачи — вам может пригодиться подборка способов их решения, приведённая в этом материале.

Здесь продемонстрировано 18 примеров кода. Начинающие программисты вполне могут проработать всё по порядку, а опытные могут разобраться именно с тем, что им нужно. Главное — понять, как устроен тот или иной пример. Отсутствие чёткого понимания того, что происходит в программах, способно сыграть злую шутку с тем, кто, например, заучив фрагмент кода и воспроизведя его на собеседовании, попытается объяснить то, как именно этот код работает. А тех, кто проводит собеседование, часто интересуют именно такие вот разъяснения.

1. Простой числовой треугольник

Желаемый результат:

1   2 2   3 3 3   4 4 4 4   5 5 5 5 5 

Код:

rows = 6 for num in range(rows):     for i in range(num):         print(num, end=" ") # вывод числа     # вывод пустой строки после каждой строки с числами для правильного отображения шаблона     print(" ") 

2. Обратный числовой треугольник

Желаемый результат:

1 1 1 1 1  2 2 2 2  3 3 3  4 4  5 

Код:

rows = 5 b = 0 for i in range(rows, 0, -1):     b += 1     for j in range(1, i + 1):         print(b, end=' ')     print('\r') 

3. Полупирамида из чисел

Желаемый результат:

1  1 2  1 2 3  1 2 3 4  1 2 3 4 5 

Код:

rows = 5 for row in range(1, rows+1):     for column in range(1, row + 1):         print(column, end=' ')     print("") 

4. Обратная пирамида из уменьшающихся чисел

Желаемый результат:

5 5 5 5 5  4 4 4 4  3 3 3  2 2  1 

Код:

rows = 5 for i in range(rows, 0, -1):     num = i     for j in range(0, i):         print(num, end=' ')     print("\r") 

5. Обратная пирамида, все элементы которой представлены одним и тем же числом

Желаемый результат:

5 5 5 5 5  5 5 5 5  5 5 5  5 5  5 

Код:

rows = 5 num = rows for i in range(rows, 0, -1):     for j in range(0, i):         print(num, end=' ')     print('\r') 

6. Пирамида из чисел, расположенных в обратном порядке

Желаемый результат:

1  2 1  3 2 1  4 3 2 1  5 4 3 2 1 

Код:

rows = 6 for row in range(1, rows):     for column in range(row, 0, -1):         print(column, end=' ')     print("") 

7. Обратная полупирамида из чисел

Желаемый результат:

0 1 2 3 4 5  0 1 2 3 4  0 1 2 3  0 1 2  0 1 

Код:

rows = 5 for i in range(rows, 0, -1):     for j in range(0, i + 1):         print(j, end=' ')     print('\r') 

8. Пирамида из натуральных чисел меньше 10

Желаемый результат:

1  2 3 4  5 6 7 8 9 

Код:

currentNumber = 1 stop = 2 rows = 3 # Количество строк, из которых состоит пирамида for i in range(rows):     for column in range(1, stop):         print(currentNumber, end=' ')         currentNumber += 1     print("")     stop += 2 

9. Пирамида из чисел от 10, расположенных в обратном порядке

Желаемый результат:

1  3 2  6 5 4  10 9 8 7 

Код:

start = 1 stop = 2 currentNumber = stop for row in range(2, 6):     for col in range(start, stop):         currentNumber -= 1         print(currentNumber, end=' ')     print("")     start = stop     stop += row     currentNumber = stop 

10. Пирамида из определённых наборов цифр

Желаемый результат:

1  1 2 1  1 2 3 2 1  1 2 3 4 3 2 1  1 2 3 4 5 4 3 2 1  

Код:

rows = 6 for i in range(1, rows + 1):     for j in range(1, i - 1):         print(j, end=" ")     for j in range(i - 1, 0, -1):         print(j, end=" ")     print() 

11. Обратная пирамида из связанных чисел

Желаемый результат:

5 4 3 2 1 1 2 3 4 5  5 4 3 2 2 3 4 5  5 4 3 3 4 5  5 4 4 5  5 5 

Код:

rows = 6 for i in range(0, rows):     for j in range(rows - 1, i, -1):         print(j, '', end='')     for l in range(i):         print('', end='')     for k in range(i + 1, rows):         print(k, '', end='')     print('\n') 

12. Пирамида из чётных чисел

Желаемый результат:

10  10 8  10 8 6  10 8 6 4  10 8 6 4 2 

Код:

rows = 5 LastEvenNumber = 2 * rows evenNumber = LastEvenNumber for i in range(1, rows+1):     evenNumber = LastEvenNumber     for j in range(i):         print(evenNumber, end=' ')         evenNumber -= 2     print("\r") 

13. Пирамида из наборов чисел

Желаемый результат:

0  0 1  0 2 4  0 3 6 9  0 4 8 12 16  0 5 10 15 20 25  0 6 12 18 24 30 36 

Код:

rows = 7 for i in range(0, rows):     for j in range(0, i + 1):         print(i * j, end=' ')     print() 

14. Пирамида, в каждой строке которой выводятся разные числа

Желаемый результат:

1  3 3  5 5 5  7 7 7 7  9 9 9 9 9 

Код:

rows = 5 i = 1 while i <= rows:     j = 1     while j <= i:         print((i * 2 - 1), end=" ")         j = j + 1     i = i + 1     print() 

15. Зеркально отражённая пирамида из чисел (прямоугольный числовой треугольник)

Желаемый результат:

          1          1 2        1 2 3      1 2 3 4    1 2 3 4 5 

Код:

rows = 6 for row in range(1, rows):     num = 1     for j in range(rows, 0, -1):         if j > row:             print(" ", end=' ')         else:             print(num, end=' ')             num += 1     print("") 

16. Равносторонний треугольник из символов *

Желаемый результат:

            *              * *             * * *            * * * *           * * * * *          * * * * * *         * * * * * * * 

Код:

size = 7 m = (2 * size) - 2 for i in range(0, size):     for j in range(0, m):         print(end=" ")     m = m - 1 # уменьшение m после каждого прохода цикла     for j in range(0, i + 1):         # вывод пирамиды из звёздочек         print("*", end=' ')     print(" ") 

17. Перевёрнутый треугольник из символов *

Желаемый результат:

        * * * * * *           * * * * *            * * * *             * * *              * *               * 

Код:

rows = 5 k = 2 * rows - 2 for i in range(rows, -1, -1):     for j in range(k, 0, -1):         print(end=" ")     k = k + 1     for j in range(0, i + 1):         print("*", end=" ")     print("") 

18. Пирамида из символов *

Желаемый результат:

*  * *  * * *  * * * *  * * * * * 

Код:

rows = 5 for i in range(0, rows):     for j in range(0, i + 1):         print("*", end=' ')     print("\r") 

Какие задачи вы посоветовали бы прорешать тем, кто готовится к собеседованию по Python?

ссылка на оригинал статьи https://habr.com/ru/company/ruvds/blog/551034/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *