Matrix Numbers - Python

Здравейте,

Опитвам да приложа следното решение за задачата Matrix Numbers към Loops Practical Tasks за Python:

n = int(input())
i = 1
k = 1

for i in range (k, n + k):
print(i, end = " ")
if i == n + k - 1:
if n == k:
break
else:
i = 1
k = k + 1
print()

По време на дебъгването обаче виждам, че след като се влезе в условната конструкция, променливата “i” придобива стойност 1 само временно. При следващата итерация на цикъла променливата “i” се връща на същата стойност каквато е имала преди това и съответно цикълът се прекратява.

Можете ли да помогнете с разяснения защо така се получава и съответно как бих могъл да избегна този проблем?

В условието на задачата ти е споменато да използваш вложен цикъл,което значи ,че ще имаш един цикъл който ти сменя реда и още един вътре в него ,който ще принтира стойностите на реда.

n = int(input())

for i in range(1,n + 1):
    for j in range(i,n + i):
        print(j,end=' ')
    print()   


Вторият цикъл е по-интересен ‘‘j’’ принтира стойностите от i до n + i exclusive ,така цикъла има “памет” докъде е стигнал и когато започне нов ред,той принтира следващата стойност на i oт главния цикъл до n + i на новия ред.

Пусни си дебъгера няколко пъти и ще го схванеш не е много интуитивно.

1 Like