Вопрос Написать узор с помощью python

Регистрация
19 Ноя 2012
Сообщения
72
Репутация
0
Спасибо
1
Монет
0
11685025_32eac88f3afae7489a96cf2cffb5b703_800.jpg

Не могу понять как это сделать, объясните пожалуйста.

Думал что вот уже понял циклы) а тут, что-то не доходит.



Есть понимание что тут внешний цикл и есть внутренний, внешний цикл делает пусть будет 8 итераций, и на каждую эту итерацию, внутренний цикл будет делать внутренние итерации какое-то кол-во раз.



Если не сложно объясните логику, сам уже часок мучаюсь)

Ради интереса посмотрел в интернете, там делают какие-то треугольники и ромбы, и там какие-то умножения даже есть в коде, это я так понимаю, что-то типа кол-во пробелов умножить там на какой-то знак типа, и выходит такой вот внешний вид



for z in range(8):

print('#')

for x in range(z):

print(' ', end='')

print(' #') или вот так for z in range(8):

for x in range(z):

print(' ', end='')

print('#')
 
Первый шаблон

for z in range(8):
print('#')
for x in range(z):
print(' ', end='')
print(' #')

И второй шаблон
for z in range(8):
for x in range(z):
print(' ', end='')
print('#')

Коллега написал что должно работать
 
for i in range(5):
for j in range(i):
print("*", end="")
print()

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

В этом коде первый цикл for отвечает за рисование первой половины узора (верхней части), а второй цикл for - за рисование второй половины узора (нижней части). Внутри каждого цикла используется вложенный цикл for, который отвечает за вывод нужного количества звездочек на каждой строке. Оператор print() используется для перехода на новую строку после каждой итерации внутреннего цикла.
 
Сейчас накидают разные варианты, я же объясню логику.

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

Внутри цикла надо напечатать #, потом внутренний цикл должен отсчитать и напечатать требуемое число пробелов (которое, конечно же, зависит от текущей строки), и в завершение напечатать еще #.
 
Назад
Сверху