|
-savol
Tarjimon (IDLE) da sinab ko‘rishingiz uchun yana bir misol.
n = 1
>>> while
|
bet | 28/31 | Sana | 22.10.2022 | Hajmi | 5.67 Mb. | | #27828 |
Bog'liq Uzb coders qollanma TITUL 2 (3), PM 5-2-Ma\'ruza (2), Qurilish mashinalarini bir ish joyidan boshqa ish joyiga uni qo, 1-маъруза, 2-amaliy ishga Javoblar, 2-amaliy ish, 1-2-mustaqil ish mavzulari (1), Birgalikda Korrupsiyani To\'xtatamiz4-savol
Tarjimon (IDLE) da sinab ko‘rishingiz uchun yana bir misol.
n = 1
>>> while n <= 3:
... print(n)
... n += 1
Ushbu sikl necha marta ishlaydi?
(Esda tuting, <= "...dan kichik yoki unga teng" degan ma’noni anglatadi.)
Izoh: Bu sikl ham 3 marta ishlaydi, chunki n qiymati 1 dan boshlangan, ya’ni n 1, 2 va 3 qiymatga ega bo‘lgan hollarda sikl ishlaydi.
16-qism
def find_512():
for x in range(100):
for y in range(100):
if x * y == 512:
break # biz xohlagan amalni bajarmaydi!
return f"{x} * {y} == 512"
1-savol
Ushbu xatolikka ega find_512 funksiyasini ishga tushiring. U nima qaytaradi?
Izoh: x*y=512 (u 29 teng) tenglik birinchi marta x = 8 (23) va y = 64 (26) bo‘lganda bajariladi, lekin break bayonoti faqatgina y uchun sikldan chiqaradi va tashqi sikl uchun x = 9 qiymatdan ishlashni davom etadi. Keyin x*y=512 tenglik ushbu holatlarda bajariladi:
x = 24 va y = 25,
x = 25 va y = 24,
x = 26 va y = 23
Ya’ni jami 4 marta bajariladi (buni o‘quvchilarga o‘ylab ko‘rish uchun savol sifatida berish mumkin).
2-savol
Sizningcha, ushbu yondashuvlardan qaysi biri xatoni tuzatishga imkon beradi?
Izoh: Kerakli qiymatlar topilganidan keyin ikkala sikldan chiqib ketish uchun shunchaki return iborasidan foydalanish kifoya. “break” bayonotini ikki marta ishlatish sintaksis xatoga olib keladi
Qo‘shimcha savol sifatida o‘quvchilardan so‘rash mumkin, dasturga qanday o‘zgartirishlar kiritilsa, u barcha tenglik bajariladigan hollarni chop etadi? Javob:
|
| |