Python ofron operatorë logjikë për të kryer operacione logjike (Boolean).(and
,or
,not
)
Përdoret për të përshkruar marrëdhënien midis kushteve të shumta në një deklaratë if.
Ky seksion përshkruan sa vijon.
- kryqëzim:
and
- shtim logjik:
or
- mohimi:
not
and
,or
,not
Përparësia e operatorit
Përveç kësaj, pikat e mëposhtme shpjegohen si kujdes.
- Operatorë logjikë për objekte të tipit të ndryshëm nga bool
and
,or
Këto vlera të kthyera nuk janë domosdoshmërisht të tipit bool.- Qark i shkurtër (vlerësimi i qarkut të shkurtër)
kryqëzim:and
dhe kthen produktin logjik të dy vlerave.
print(True and True)
# True
print(True and False)
# False
print(False and True)
# False
print(False and False)
# False
Në fakt, shpesh përdoret jo për të vërtetë ose false, por për shprehje të kushtëzuara duke përdorur operatorë krahasimi. Për informacionin tuaj, operatorët e krahasimit janë si më poshtë.
<
>
a = 10
print(0 < a)
# True
print(a < 100)
# True
print(0 < a and a < 100)
# True
dhe mund të lidhet si më poshtë.
print(0 < a < 100)
# True
shtim logjik:or
ose kthen OSE logjike të dy vlerave.
print(True or True)
# True
print(True or False)
# True
print(False or True)
# True
print(False or False)
# False
mohimi:not
jo” kthen mohimin e vlerës; e vërteta dhe e rreme janë të kundërta.
print(not True)
# False
print(not False)
# True
and,or,notPërparësia e operatorit
Rendi i përparësisë së këtyre operatorëve logjikë është si më poshtë: jo është më i larti.
not
and
or
Në kodin e mëposhtëm të mostrës, shprehja e mësipërme interpretohet sikur të ishte ajo më poshtë. Meqenëse nuk ka problem me kllapa shtesë, mund të jetë më e lehtë për t’i përshkruar ato qartë në raste si ky shembull.
print(True or True and False)
# True
print(True or (True and False))
# True
Nëse dëshironi të operoni ose para dhe, përdorni kllapat().
print((True or True) and False)
# False
<
,>
Këta operatorë krahasimi kanë përparësi edhe më të lartë se jo. Prandaj, kllapat nuk janë të nevojshme për çdo operacion krahasimi, siç ishte rasti në shembullin e mësipërm.
print(0 < a and a < 100)
# True
Shihni dokumentacionin zyrtar më poshtë për një përmbledhje të përparësisë së operatorit në Python.
Operatorë logjikë për objekte të tipit të ndryshëm nga bool
With these logical operators, not only bool types (true, false), but also numbers, strings, lists, etc. are processed as boolean values.
Objektet e mëposhtme konsiderohen false në operacionet logjike të Python.
- Konstantet e përcaktuara si false:
None
,false
- Zero në llojet numerike:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- Sekuencë ose koleksion bosh:
'
,()
,[]
,{}
,set()
,range(0)
Të gjitha vlerat e tjera konsiderohen të vërteta.
Funksioni bool() mund të përdoret për të marrë vlerën boolean të një objekti. Vini re se vargu ‘0’ ose ‘False’ konsiderohet i vërtetë.
print(bool(10))
# True
print(bool(0))
# False
print(bool(''))
# False
print(bool('0'))
# True
print(bool('False'))
# True
print(bool([]))
# False
print(bool([False]))
# True
Për të trajtuar ‘0’ ose ‘false’ në një varg si false, përdorni distutils.util.strtobool().
and,orKëto vlera të kthyera nuk janë domosdoshmërisht të tipit bool.
Këtu është një shembull i një objekti të ndryshëm nga një lloj bool, që tregon rezultatin e secilit operator në një vlerë numerike.
x = 10 # True
y = 0 # False
print(x and y)
# 0
print(x or y)
# 10
print(not x)
# False
Siç mund ta shihni nga shembulli i mësipërm, dhe dhe ose në Python mos ktheni true ose false të tipit bool, por ktheni vlerën majtas ose djathtas në varësi të faktit nëse është e vërtetë ose e gabuar. Shembulli është numerik, por e njëjta gjë vlen edhe për lloje të tjera si vargjet dhe listat. Rastësisht, nuk kthen true ose false të tipit bool.
Përkufizimet e vlerave të kthyera të dhe dhe ose janë si më poshtë.
The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned.
The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned.
6.11. Boolean operations — Expressions — Python 3.10.1 Documentation
Kur vlerat e shprehjeve të majta dhe të djathta janë të vërteta dhe të rreme veçmas, vlerat e kthyera janë të lehta për t’u kuptuar. Nga ana tjetër, nëse të dyja janë të vërteta ose të dyja janë false, vlera e kthimit do të jetë e ndryshme në varësi të renditjes.
Nëse e përdorni atë si një shprehje të kushtëzuar në një deklaratë if, etj., rezultati vlerësohet si një vlerë boolean dhe përpunohet, kështu që nuk keni nevojë të shqetësoheni për të, por nëse përdorni vlerën e kthyer për përpunim të mëtejshëm, ju duhet pasur kujdes.
x = 10 # True
y = 100 # True
print(x and y)
# 100
print(y and x)
# 10
print(x or y)
# 10
print(y or x)
# 100
x = 0 # False
y = 0.0 # False
print(x and y)
# 0
print(y and x)
# 0.0
print(x or y)
# 0.0
print(y or x)
# 0
print(bool(x and y))
# False
Nëse dëshironi ta trajtoni atë si të vërtetë ose të rremë, mund të veproni si në shembullin e fundit.bool(x and y)
Vlerat e kthyera të dhe dhe ose janë përmbledhur në tabelën e mëposhtme.
x | y | x and y | x or y |
---|---|---|---|
true | false | y | x |
false | true | x | y |
true | true | y | x |
false | false | x | y |
Qark i shkurtër (vlerësimi i qarkut të shkurtër)
Siç mund ta shihni nga tabela e mësipërme, nëse x është e gabuar në x dhe y, ose nëse x është e vërtetë në x ose y, vlera e kthyer do të jetë x pavarësisht nga vlera e y.
Në një rast të tillë, y nuk vlerësohet.
and
,or
Vini re se nëse thërrisni një funksion ose metodë në anën e djathtë të këtyre proceseve për të kryer disa përpunime, procesi mund të mos ekzekutohet në varësi të rezultatit në anën e majtë.
def test():
print('function is called')
return True
print(True and test())
# function is called
# True
print(False and test())
# False
print(True or test())
# True
print(False or test())
# function is called
# True