петля питона, рисунок пирамиды - PullRequest
0 голосов
/ 01 декабря 2018

Может кто-нибудь помочь мне с этим кодом.Это должно быть сделано, используя для и если только.

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

Я устал и думаю обо всем, но я не понимаю, чего мне не хватает.У меня проблема с генерацией 101, 21012, 3210123, 43211234

вот мой код (неверный)

for i in range (1,6):
    for t in range (i,5):
        print('\t', end="")
    for j in range (0,(2*i-1)):
        print(2*i-1-j, "\t", end="")
    print("")

введите описание изображения здесь

Ответы [ 5 ]

0 голосов
/ 01 декабря 2018

Soultion с использованием только для цикла.

spaces=4
limits=0

for line in range(5):
    for space in range(spaces):
        print(' ',end=' ')
    for limit in range(limits,-1,-1):
        print(limit,end=' ')
    for limit in range(1,limits+1):
        print(limit,end=' ')
    spaces-=1
    limits+=1
    print('\n')

Выход

0 голосов
/ 01 декабря 2018

Это другое решение с использованием списка:

n = 4
lizst = [0]
for h in range (1, n+2):
  print("\t"*(n+1-h), end = "")
  [print(e, "", end = "") for e in lizst]
  lizst = [h] + lizst + [h]
  print()
0 голосов
/ 01 декабря 2018

Если вы разрешите list-comprehension

num = 4
for i in range(num+1):
    j = [str(n) for n in range(i+1)]
    k = list(reversed(j))
    print (' '.join([' '] * (num-i) + k + j[1:]))

Вывод:

        0
      1 0 1
    2 1 0 1 2
  3 2 1 0 1 2 3
4 3 2 1 0 1 2 3 4
0 голосов
/ 01 декабря 2018

так вот мой последний код, который работает правильно сильный текст

for i in range (1,6):
    for t in range (i,5):
        print('\t', end="")
    for j in range (0,i):
        print(i-j-1, "\t", end="")
    for k in range (1,i):
        print (k,"\t" ,end="")
    print("")
0 голосов
/ 01 декабря 2018

В каждой строке цифры начинаются с высокого, затем уменьшаются до нуля, а затем снова повышаются.Поскольку петли обычно идут только в одном направлении, почему бы не использовать две петли?Если у вас есть один счетчик циклов от i до 1, а затем следующий от 0 до i, вы должны получить желаемый результат.Дайте мне знать, если вы хотите, чтобы я прояснил это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...