Loading...

Камтылган циклдер for

Камтылган циклдер for

Цикл башка циклдин ичинде болсо, уя деп аталат.

Ички цикл форматы:

https://lh3.googleusercontent.com/S37RdsR7ltfTp9K1pZc-uj8Lq3Q5ttoreRG7OX1KZqMWw-bemuj3gqvqC1I_QM5ut4bdV6eEykHZwHHFkYiZey-i2P-gQqsCJCEnA23IgtOFmNRC-wS_rKeuB7bKDJseMt2Z71ZRiaQH-G5c7onkI1yOYg=s2048

Бул мисалда экинчи цикл уя салынат, анткени ал биринчи циклдин ичинде жайгашкан, ал сырткы деп аталат.

Келгиле, уяланган циклдер кантип иштээрин мисал менен карап көрөлү. Ички цикл үчүн башка өзгөрмө колдонулушу керек экенин дароо айтуу керек. J тамгасын колдонуу салтка айланган, бирок ал башка өзгөрмө болушу мүмкүн.

@a@for i in range(3):

    for j in range(5):

         print('*', end=" ")@A@

 

@T@* * * * * * * * * * * * * * *@T@

Эгер эсептесек, алардын 15и бар экенине ынанабыз, анткени биздин сырткы цикл 3 жолу аткарылган жана анын ар бир кайталанышы үчүн ички циклди 5 жолу жасаганбыз.

Мурунку мисалды таблицага айландырса болот

@A@for i in range(3):

    for j in range(5):

         print('*', end=" ")

    print() @A@

 

@T@* * * * *

* * * * *

* * * * *@T@

 

         Бул жерде биз уяланган цикл үч жолу аткарылганын көрөбүз, ал * 5 жолу басылышы керек.

Ошондой эле жылдызчанын ордуна каалаган нерсени чыгара аласыз, мисалы, өзгөрмө i. Бул код менен биз алабыз:

@A@for i in range(3):

    for j in range(5):

         print(i, end=" ")

    print()@A@

@T@0 0 0 0 0

1 1 1 1 1

2 2 2 2 2@T@

 

     Бул ички циклдин аткарылышы учурунда тышкы циклдин өзгөрмөлүүлүгү өзгөрүлбөй турганын билдирет. Алгач 0 маанисин алганыбызда, сырткы циклдин бүт денеси аткарылмайынча нөл менен иштейбиз. Бул биз 0 санын 5 жолу катары менен басып чыгарабыз жана андан кийин гана циклдин башына кайтып келип, 1ге өтөбүз дегенди билдирет.

 

Эгерде биз  j, өзгөрмөсүн чыгарсак, анда биз башка жыйынтыкка ээ болобуз:

@A@for i in range(3):

    for j in range(5):

         print(j, end=" ")

    print() @A@

@T@0 1 2 3 4

0 1 2 3 4

0 1 2 3 4@T@

Көрүнүп тургандай, биз 0 жана 5 ортосундагы сандарды үч эсе басып чыгарабыз, б.а. өзгөрмө j.

 

Ошол эле учурда, уяланган циклдин эң башында  range()функциясындагы өзгөрмөнүн ордуна  i  өзгөрмөсүн алмаштырып, натыйжа кандай болорун төмөнкү коддон көрө аласыз.

@A@for i in range(4):

    for j in range(i):

         print(j, end=" ")

    print()  @A@

 

@T@0

0 1

0 1 2@T@

Биринчи сапка көңүл буруңуз: ал бош, анткени i өзгөрмөсү нөлгө барабар болгон, бул биз диапазонду (0) айланып өттүк дегенди билдирет, б.а. нөлгө, бул такыр жок дегенди билдирет. Андан кийин биз диапазонго (1) ээ болдук жана циклди 1 жолу жасадык, андан кийин диапазондо (2) жана эки жолу жасадык.

Уюшкан тизменин элементтерин өтүү(обход элементов вложенного списка)

Келгиле, берилген тизменин бардык элементтерин кантип итерациялоону үйрөнөлү. Бул жерде, кадимки тизмелердегидей, айланып өтүүнүн 2 варианты бар:

  • наркы боюнча өтүү
  • Индекске өтүңүз.

Маани боюнча айланып өтүү:

@A@a = [

    [0, 2, 4, 6],

    [1, 5, 9, 13],

    [3, 10, 17, 19]

]

for i in a:

    for j in i:

         print(j, end=" ")

    print()   @A@  

 

@T@0  2  4  6

1  5  9  13

3  10  17  19@T@

 

       Жыйынтыгын текшере алабыз: 0+2+4+6 = 12, 1+5+9+13=28 ж.б.

Мамычалардын үстүнөн сумманы табуу үчүн бул эки циклди алмаштыруу керек жана башка эч нерсени өзгөртүүнүн кереги жок:

@A@a = [

    [0, 2, 4, 6],

    [1, 5, 9, 13],

    [3, 10, 17, 19]

]

 

for j in range(4):

    sum = 0

    for i in range(3):

        sum += a[i][j]

    print(sum)    @A@

 

@T@4

17

30

38@T@