Takrorlanuvchi operatorlar (for, while)

for sikli haqida tushuncha

range() funksiyasi haqida

range() funktsiyasi raqamlar ketma-ketligini qaytaradi, 0 dan boshlanadi va 1 ga ko'payib boradi va belgilangan songa borganda tugaydi. Bunga boshlang'ich qiymat, tugaydigan qiymat va qanchdan sakrashi ya'ni qadamni ko'rsatsak bo'ladi.

for x in range(6):
    print(x)
    
# Natija 0, 1, 2, 3, 4, 5
for x in range(2, 7):
    print(x)
    
# Natija: 2, 3, 4, 5, 6
for x in range(1, 10, 2):
    print(x)
    
# Natija: 1, 3, 5, 7, 9

while - takrorlanish operatori

while sikli ham xuddi for sikliga o'xshab takrorlanuvchi operatordir.

num = 1 # num ga 1 qiymatini beramiz
while num<=5: # toki num 5 dan kichik yoki teng ekan...
    print(num, end=' ') # num ni konsolga chiqaramiz,
    num = num+1 # num'ga 1 qo'shamiz.

Yuqoridagi kodni tahlil qilamiz:

  • avval num degan o'zgaruvchi yaratdik va unga 1 qiymatini berdik.

  • 2-qatorda esa toki num 5 dan kichik yoki teng ekan 3-4-qatorlarni bajar dedik.

  • 3-qatorda num ni konsolga chiqardik

  • 4-qatorda num ga 1 qo'shdik.

  • 4-qatordan so'ng kod yana 2-qatorga qaytadi va num<=5 shartini tekshiradi, agar shart bajarilsa 3-4 qator qayta-qayta bajarilaveradi.

  • 5-qadamdan so'ng num=5 bo'lganda while tsikli to'xtaydi

Cheksiz takrorlanuvchi sikl

n = 1
while n <= 5:
    print(n)
n = 1
while True:
    print(n)

Amaliyot

for sikli

from math import sin

s = 0
n = int(input())
for i in range(1, n + 1):
    s += sin(i) / (2 ** i)
print('%.2f' % s)

Faktoryal funksiyasidan foydalanish.

from math import factorial

n, x = input().split()

n = int(n)
x = int(x)

s = 0
for i in range(1, n + 1):
    s += (x ** (2 * i - 1))/(factorial(2 * i - 1))

print('%.3f' % s)

Nested for

import math

a, b, c, d = input().split()
a, b, c, d = int(a), int(b), int(c), int(d)
s, p, s1, p1 = 0, 1, 0, 1

for m in range(1, a + 1):
    s += (3 * (m ** 3) + 4 * m + 5)/(m ** 3 + math.log(m))

for k in range(1, b + 1):
    p *= k / (k ** 3 + 7 * k + 5)

for i in range(1, c + 1):
    p1 = 1
    for m in range(1, d + 1):
        p1 *= (math.log(i) + m ** i) / (m ** i)
    s1 += p1

print('%.2f %.2f %.2f' % (s, p, s1))

while sikli

a, b, c = input().split()
a, b, c = int(a), int(b), int(c)
y = 0
x = a
while x <= b:
    y += (a ** b + b ** x + c ** a) / (2 * x ** 2 + 3 * a ** x)
    x += 2
print('%.2f' % y)

Last updated

Was this helpful?