[Перевод] Python: 18 задач на вывод символов по заданному шаблону
Подготовка к техническому собеседованию по Python — нелёгкая задача. На таком собеседовании вам, вполне возможно, встретятся задачи на вывод символов по заданным шаблонам. Если вы хотите научиться решать такие задачи — вам может пригодиться подборка способов их решения, приведённая в этом материале.
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Желаемый результат:
Код:
Какие задачи вы посоветовали бы прорешать тем, кто готовится к собеседованию по 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?