Praca z flagami w Pythonie
Flaga - to specjalna zmienna,
która może przyjmować tylko dwie wartości:
True lub False. Za pomocą
flag można rozwiązywać zadania, sprawdzające
brak czegoś: na przykład, można
sprawdzić, że na liście nie ma elementu o
określonej wartości.
Rozwiążmy następujące zadanie: dana jest lista
liczb, trzeba sprawdzić, czy wszystkie elementy
w niej są dodatnie. W tym celu
ustawmy specjalną zmienną flag,
która przed rozpoczęciem pętli będzie prawdziwa. A
gdy w pętli napotkamy liczbę ujemną,
zmienimy jej wartość na False. Aby
poznać wynik sprawdzenia,
wypiszmy zmienną flag po pętli
do konsoli:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # wypisze True, ponieważ wszystkie liczby są dodatnie
Dobrą praktyką jest nadawanie
zmiennej flagowej nazwy, odzwierciedlającej
postawiony warunek. Przemianujmy flag
na isAllPositive. Dla przejrzystości
zmieńmy jedną liczbę z listy na ujemną:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # wypisze False, ponieważ jest liczba ujemna
Jeśli na przeszukiwanej liście jest wiele wartości
i trzeba zatrzymać pętlę po wykryciu
pierwszej liczby ujemnej, należy
zastosować instrukcję break:
for el in lst:
if el < 0:
isAllPositive = False
break
Podczas pracy z flagami, aby poznać wynik
wykonania pętli, można wypisać nie wartość
flagi, ale dowolną wiadomość za pomocą
dodatkowego if.
Przepiszmy poprzedni przykład. Jeśli
wszystkie elementy są dodatnie, to niech
wypisze się '+++', jeśli nie -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # wypisze '---'
Dana jest lista. Sprawdź, czy wszystkie jej elementy są liczbami dodatnimi.
Dana jest liczba całkowita. Sprawdź, czy jest ona liczbą pierwszą, to znaczy dzieli się tylko przez jeden i przez samą siebie.