Top.Mail.Ru
Ответы

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

Не могу понять как это сделать, объясните пожалуйста.
Думал что вот уже понял циклы) а тут, что-то не доходит.

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

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

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

или вот так

1234
 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() используется для перехода на новую строку после каждой итерации внутреннего цикла.

Аватар пользователя
Мудрец

Сейчас накидают разные варианты, я же объясню логику.

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

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

Аватар пользователя
Высший разум
1
 for n in range(6): print('#'+n*' '+'#') 
Аватар пользователя
Просветленный

Первый шаблон

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('#')

Коллега написал что должно работать