Python-да флагтармен жұмыс
Флаг - бұл тек екі мән ғана қабылдай алатын арнайы айнымалы:
True немесе False. Флагтар көмегімен
бірдеменің жоқтығын тексеріп көретін мәселелерді шешуге болады:
мысалы, тізімде белгілі бір мәні бар элемент жоқ екенін тексеруге болады.
Келесі мәселені шешейік: сандар тізімі берілген, ондағы барлық элементтердің
оң сан ба екенін тексеру керек. Ол үшін арнайы flag айнымалысын
белгілейік, ол цикл басталмас бұрын шын болады. Ал
циклге теріс сан кірген кезде, оның мәнін False-ке өзгертеміз.
Тексеру нәтижесін білу үшін,
циклден кейін flag айнымалысын консольге шығарайық:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # барлық сандар оң болғандықтан True шығарады
Флаг айнымалысына оның шартын көрсететін ат беру жақсы тәжірибе болып табылады.
flag-ты isAllPositive деп атауды өзгертейік. Және анықтығы үшін
тізімдегі бір санды теріс санға өзгертейік:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # теріс сан бар болғандықтан False шығарады
Егер ізделетін тізімде көп мән болса және
бірінші теріс сан табылғаннан кейін циклді тоқтату қажет болса,
онда break инструкциясын қолдану керек:
for el in lst:
if el < 0:
isAllPositive = False
break
Флагтармен жұмыс істегенде, циклдың орындалу нәтижесін білу үшін,
флагтың мәнін емес, қосымша if көмегімен ерікті хабарды шығаруға болады.
Алдыңғы мысалды қайта жазайық. Егер
барлық элементтер оң болса, онда
'+++' шығсын, егер болмаса -
'---' шығсын:
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # '---' шығарады
Тізім берілген. Оның барлық элементтерінің оң сандар екенін тексеріңіз.
Бүтін сан берілген. Оның жай сан ба екенін тексеріңіз, яғни тек бірге және өзіне ғана бөлінеді ме.