⊗pyPmLpFl 162 of 208 menu

Pythonda bayroqchalar bilan ishlash

Bayroqcha - bu faqat ikkita qiymat qabul qilishi mumkin bo'lgan maxsus o'zgaruvchi: True yoki False. Bayroqchalar yordamida nimanidir yo'qligini tekshiradigan masalalarni yechish mumkin: masalan, ro'yxatda ma'lum qiymatga ega element yo'qligini tekshirish mumkin.

Keling, quyidagi masalani yechamiz: sonlar ro'yxati berilgan, uning barcha elementlari musbat ekanligini tekshirish kerak. Buning uchun flag maxsus o'zgaruvchisini belgilaymiz, u tsikl boshlanishidan oldin rost qiymatga ega bo'ladi. Tsikl da manfiy son uchrayotganda esa, uning qiymatini False ga o'zgartiramiz. Tekshiruv natijasini bilish uchun, tsilkdan keyin flag o'zgaruvchisini konsolga chiqaramiz:

lst = [1, 2, 3, 4, 5] flag = True for el in lst: if el < 0: flag = False print(flag) # True chiqadi, chunki barcha sonlar musbat

Yaxshi amaliyot - bayroqcha o'zgaruvchisi uchun berilgan shartni aks ettiruvchi nom berishdir. Keling flag ni isAllPositive ga o'zgartiramiz. Va aniqlik uchun ro'yxatdagi bir sonni manfiy qilamiz:

lst = [1, 2, 3, -4, 5] isAllPositive = True for el in lst: if el < 0: isAllPositive = False print(isAllPositive) # False chiqadi, chunki manfiy son mavjud

Agar qayta islanayotgan ro'yxatda ko'p qiymatlar bo'lsa va birinchi manfiy son aniqlangandan keyin tsiklni to'xtatish kerak bo'lsa, break ko'rsatmasini qo'llash kerak:

for el in lst: if el < 0: isAllPositive = False break

Bayroqchalar bilan ishlashda, tsilknatijasini bilib olish uchun, bayroqning qiymatini chiqarish o'rniga, qo'shimcha if yordamida ixtiyoriy xabarni chiqarish mumkin.

Keling oldingi misolni qayta yozamiz. Agar barcha elementlar musbat bo'lsa, '+++' chiqsin, aks holda - '---' chiqsin:

for el in lst: if el < 0: isAllPositive = False break if isAllPositive: print('+++') else: print('---') # '---' chiqadi

Ro'yxat berilgan. Uning barcha elementlari musbat sonlar ekanligini tekshiring.

Butun son berilgan. Uning tub son ekanligini tekshiring, ya'ni faqat bitta va o'ziga bo'linadigan son.

azbydeenesfrkakkptruuz