For – циклы
For – циклы
For циклы. Range функциясынын элементтерин өтүү
for цикли кайталануучу ырааттуулуктун бардык элементтерин же кайталануучу объектти бирден кайталоого мүмкүндүк берет. Бүгүн, range() функциясы менен for циклин колдонууну карап көрөлү.
For цикл форматы:
Биринчи мисалды карап көрөлү:
@A@for i in range(4):
print(i)@A@
@T@0
1
2
3@T@
Ал кантип иштейт: for цикли катардын биринчи элементин диапазондон i ге чейин дайындайт, ал 0, андан кийин циклдин ичинде биз муну 0 чыгарабыз, андан кийин циклдин корпусу аяктагандан кийин, for цикли кийинки маанини дайындайт i, бул биздин учурда 1 жана ал цикл бүт ырааттуулуктан өткөнгө чейин иштетилет.
Цикл аяктагандан кийин i өзгөрмөсү range() ырааттуулугунун акыркы маанисин алаарын да эске алуу керек. Муну көрсөтүү үчүн, төмөнкү коддун чыгышын карап көрөлү:
@A@for i in range(4):
print("inside", i)
print("outside", i) @A@
@T@inside 0
inside 1
inside 2
inside 3
outside 3@T@
Көрүнүп тургандай, for циклинин сыртында жайгашкан i нин акыркы мааниси бул циклдин ичиндеги i нин акыркы маанисине барабар.
for циклинде range колдонуу
Келгиле, for. циклинде range()функциясын кантип колдонсоңуз болорун талкуулайлы. Бул жерде 2 колдонуу чөйрөсү бар:
Вариант 1
range() функциясын колдонуп for циклин айланып өтүңүз, кээ бир берилген ырааттуулук. Биз муну циклде i, чыгарганда ишке ашырдык, б.а. биз 0дөн 3кө чейинки сандардын ырааттуулугунан өттүк. Эгер башка ырааттуулуктан өтүш керек болсо, мисалы, бардык үч орундуу сандар, анда төмөнкү кодду жазышыңыз керек:
@A@for i in range(100, 1000):
print(i)@A@
Натыйжада, программа 100дөн 999га чейинки сандарды көрсөтөт.
Циклдин ичинде сиз каалаган шарттарды орното аласыз, мисалы, 2 жана 7ге гана бөлүнүүчү бардык сандарды көрсөтө аласыз:
@A@for i in range(100, 1000):
if i % 2 == 0 and i % 7== 0:
print(i)@A@
Натыйжада, биз 2ге да, 7ге да бөлүнүүчү бардык үч орундуу сандарды алабыз.
Ошондой эле 1ден 10го чейинки сандардын бардык квадраттарын басып чыгара аласыз. Санды да, анын квадратын да басып чыгалы:
@A@for i in range(1, 11):
print(i, i**2)@A@
Натыйжада 1ден 10го чейинки сандарды (кошкондо) жана алардын квадраттарын алдык.
Мурунку сабакта sum() жана range() функцияларынын жардамы менен 1ден 100гө (кошкондо) чейинки сандардын суммасын кантип тапса болорун карап чыктык. Сандардын суммасын for цикли аркылуу да табууга болот. Бул үчүн биз жаңы өзгөрмө түзөбүз, анда сумма топтолгон, эң башында ал нөлгө барабар болушу керек. Циклдин өзүндө биз жөн гана i, өзгөрмөсүн суммага кошуп, аны sum. өзгөрмөсүнө сактап коёбуз. Циклдин аягында биз кошуунун натыйжасын көрсөтөбүз.
@A@sum = 0
for i in range(1, 101):
sum = sum + i
print(sum)@A@
Ошондой эле, көп учурда сандын факториалын табуу керек болгон көйгөйлөр бар. Аны табуу үчүн 1ден ушул санга чейинки бардык сандарды өз ара көбөйтүү керек. Ошентип фактордук 4 = 1 * 2 * 3 * 4 = 24. Бул үчүн биздин мурунку кодубуз дээрлик даяр, жөн гана кодду бир аз өзгөртүшүңүз керек.
@A@pr = 1
for i in range(1, 5):
pr = pr * i
print(pr)@A@
n санынын факториалын табуу үчүн киргизүү маанисин алган өзгөрмө кошуу керек жана range функциясына бул өзгөрмө + 1ди көрсөтүү керек (+1 керек, анткени бул санды жөн эле көрсөтсөңүз, анда ал алынбайт. биздин циклге). Натыйжада, код төмөнкүдөй болот:
@A@n = int(input('Номер териниз: '))
pr = 1
for i in range(1, n+1):
pr = pr * i
print(f'факториал{n} = {pr}')@A@
Белгилүү бир нече жолу аракетти кайталаңыз. Мисалы:
@A@for i in range(3):
print('hello')@A@
@T@hello
hello
hello@T@
Эгерде range() функциясында өзгөрмөнүн маанисин өзгөртсөк, анда биз hello фразанын башка санын алабыз. Бул жерде сиз ошондой эле санды алып, бул фразаны белгилүү бир санда көрсөтө турган өзгөрмө кошо аласыз:
@A@n = int(input('Номер териниз: '))
for i in range(n):
print('hello')@A@