Teigiama ir neigiama reikšmė (booleans)
Booleans - tai loginis duomenų tipas turintis dvi reikšmes: loginis „taip“ ir loginis „ne“. Python programavimo kalboje tai užrašoma kaip True
arba False
(būtinai iš didžiųjų!). Kai rašoma programa dažnai pasitaiko, kai reikia įvykdyti skirtingą kodą, kuris atitinka tam tikras sąlygas, būtent čia ir gelbėja bolleans reikšmės.
Funkcija bool()
Ši funkcija įvertina, bet kokią reikšmę ir pateikia jos loginę reikšmę True
arba False
:
print(bool("Vilnius")) #True
print(bool(15)) # True
print(bool(0)) # False
Neigiama reikšmė: False
Kiekvienas objektas turi boolean loginę reikšmę. Beveik visi objektai turi loginę True
reikšmę, išskyrus šie objektai visuomet yra False
:
bool(None) # False
bool(False) # False
# Nulis nepriklausomai nuo tipo: int, float ar complex yra False
bool(0) # False
# kiekviena tuščia reikšmė
bool("") # False
bool(()) # False
bool([]) # False
bool({}) # False
#Objektai iš klasių, turinčių specialų metodą __nonzero__
class B():
def __nonzero__(self):
return 0
b = B()
bool(b) # False
#Objektai iš klasių, kurie realizuoja __len__, kad grąžintų klaidingą arba nulį
class A():
def __len__(self):
return 0
b = B()
bool(b) # False
Dviejų reikšmių palyginimas
Kai lyginame dvi reikšmes Python grąžina boolean reikšmę:
print(5 > 2) # True
print(5 < 2) # False
print(5 == 2) # False
Kelių reikšmių lyginimas
Galima lyginti kelias reikšmes ir gauti boolean reikšmę:
x = 5
print(bool(4 < x < 6)) # True
print(bool(7 < x < 8)) # False
print(bool(6 > x <= 5)) # True
print(bool(5 == x < 6)) # True
Kuo skiriasi is ir ==?
Yra nedidelis skirtumas tarp „Python“ tapatybės operatoriaus (is) ir lygybės operatoriaus (==). Lygybės operatorius (==) lygina dviejų objektų vertę ar lygybę, o operatorius is
tikrina, ar du kintamieji nurodo tą patį atminties objektą.
a = [1, 2, 3]
b = a
c = a[:]
print(bool(a == b))# True
print(bool(a == c)) # True
print(bool(a is b)) # True
print(bool(a is c)) # False
Loginiai operatoriai and, or, not
And, not
yra loginiai operatoriai, kurie grąžina True
tik tokiu atveju, jeigu abu lyginami dalykai yra True
, o loginis operatorius or
grąžina True
, tokiu atveju, jei vienas iš lyginamų dalykų yra True
:
x = True
y = False
print('x and y yra',x and y) #False
print('x or y yra',x or y) #True
print('not x yra',not x) #False
Funkcijos gali grąžinti boolean reikšmę
Galima sukurti funkcijas, kurios grąžina boolean reikšmę:
def myFunction() :
return True
print(myFunction()) # True
# Angyje
komanda manoFunkcija():
grąžink True
rašyk(manoFunkcija()) # True