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:

pythonlst = [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:

pythonlst = [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:

pythonfor 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:

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

if isAllPositive:
  print('+++')
else:
  print('---') # '---' chiqadi
Задание 1

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

Задание 2

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