(Python) Как напечатать треугольник с конкретными цифрами, используя для цикла? - PullRequest
0 голосов
/ 15 октября 2018

Я хотел бы напечатать шаблон, например: (только 1,0)

10101

0101

101

01

0

Когда пользователь вводит 5

m= int(input())
n=m+1

for i in range(0,n):
    for j in range(0,n-i):
    print(0,end=" ")

print()

Это то, что я получил прямо сейчас

Ответы [ 4 ]

0 голосов
/ 15 октября 2018

Используя itertools.cycle, вы можете просто использовать next() с дополнительными next() на четных линиях

from itertools import cycle
m = int(input('Enter number: '))
s = cycle('10')

for i in range(m+1)[::-1]:
    for j in range(i):
        print(next(s), end="")
    print()
    if not i % 2:
        next(s)

10101
0101
101
01
1
0 голосов
/ 15 октября 2018

В дополнение к решению слайдера, существует другой способ сделать это следующим образом: Идея здесь состоит в том, чтобы сначала сгенерировать самую большую строку в начале, а затем использовать нарезку для печати отдельных строк.Это просто альтернативное решение.

m= int(input())
string = [1 if i%2 == 0 else 0 for i in range(m)]

for i in range(m):
    for j in string[i:]:
        print (j, end=' ')
    print ()

5
1 0 1 0 1 
0 1 0 1 
1 0 1 
0 1 
1 
0 голосов
/ 15 октября 2018

Опираясь на сообщение @Bazingaa, вы также можете создать альтернативу, для которой нужен только один цикл for:

nro_lvls = int(input('Number of levels? '))
longest = ['1' if i%2 == 0 else '0' for i in range(nro_lvls)]

for i in range(nro_lvls):
  print(''.join(longest[i:]))
0 голосов
/ 15 октября 2018

Ты почти у цели.Вместо того, чтобы печатать 0, вы можете напечатать что-нибудь, основываясь на значении j, потому что вам нужен чередующийся шаблон 1 и 0.В этом случае j % 2 работает при повторной итерации во втором цикле for.

n = int(input("Levels? "))

for i in range(0, n):
    for j in range(n - i, 0, -1): # go backwards
        print(j % 2, end=" ") # print j% 2 instead of 0
    print()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...