Работа з флагікамі ў 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('---') # выведзе '---'
Дадзены спіс. Праверце, што ўсе яго элементы з'яўляюцца дадатнымі лікамі.
Дадзены цэлы лік. Праверце, ці з'яўляецца ён простым, гэта значыць дзеліцца толькі на адзінку і на само́га сябе.