Operatorët logjikë të Python dhe, ose, dhe jo (lidhje logjike, shkëputje, mohim)

biznes

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,notPë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,orKë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.

  1. not
  2. and
  3. 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.

xyx and yx or y
truefalseyx
falsetruexy
truetrueyx
falsefalsexy

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,orVini 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
Copied title and URL