может кто-нибудь помочь мне с этим кодом. Это должно быть сделано с использованием только для и, если только.
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("")
В каждой строке цифры начинаются высоко, затем спускаются до нуля, а затем снова идут вверх. Поскольку циклы обычно идут только в одном направлении, почему бы не использовать две циклы? Если у вас есть один счетчик циклов от я до одного, а затем следующий счетчик от 0 до i, вы должны получить желаемый результат. Дайте мне знать, если вы хотите, чтобы я разъяснил об этом.
Если вы разрешаете использование 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
Это другое решение, использующее список:
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()
поэтому вот мой последний код, который работает правильно сильным текстом
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("")
\t
в цикле печати j
и k
.
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')