Python-un məntiqi operatorları və, və ya, və deyil (məntiqi birləşmə, disjunksiya, inkar)

Biznes

Python məntiqi (Boolean) əməliyyatları yerinə yetirmək üçün məntiqi operatorları təmin edir.(and,or,not)
if ifadəsində çoxlu şərtlər arasındakı əlaqəni təsvir etmək üçün istifadə olunur.

Bu bölmə aşağıdakıları təsvir edir.

  • kəsişmə:and
  • məntiqi əlavə:or
  • inkar:not
  • and,or,notOperatorun üstünlüyü

Bundan əlavə, aşağıdakı məqamlar xəbərdarlıq kimi izah olunur.

  • booldan başqa tipli obyektlər üçün məntiqi operatorlar
  • and,orBu qaytarılan dəyərlər mütləq bool tipli deyil.
  • Qısa qapanma (qısa qapanma qiymətləndirməsi)

kəsişmə:and

və iki dəyərin məntiqi məhsulunu qaytarır.

print(True and True)
# True

print(True and False)
# False

print(False and True)
# False

print(False and False)
# False

Əslində, çox vaxt doğru və ya yalan üçün deyil, müqayisə operatorlarından istifadə edərək şərti ifadələr üçün istifadə olunur. Məlumatınız üçün müqayisə operatorları aşağıdakılardır.

  • <
  • >
a = 10
print(0 < a)
# True

print(a < 100)
# True

print(0 < a and a < 100)
# True

və aşağıdakı kimi birləşdirilə bilər.

print(0 < a < 100)
# True

məntiqi əlavə:or

və ya iki dəyərin məntiqi OR-unu qaytarır.

print(True or True)
# True

print(True or False)
# True

print(False or True)
# True

print(False or False)
# False

inkar:not

not” dəyərin inkarını qaytarır; true və false əksinədir.

print(not True)
# False

print(not False)
# True

and,or,notOperatorun üstünlüyü

Bu məntiqi operatorların üstünlük sırası aşağıdakı kimidir: not ən yüksəkdir.

  1. not
  2. and
  3. or

Aşağıdakı nümunə kodda yuxarıdakı ifadə aşağıdakı kimi şərh olunur. Əlavə mötərizələrlə bağlı problem olmadığı üçün bu nümunə kimi hallarda onları aydın şəkildə təsvir etmək daha asan ola bilər.

print(True or True and False)
# True

print(True or (True and False))
# True

Əgər siz və ya ondan əvvəl işləmək istəyirsinizsə, mötərizələrdən() istifadə edin.

print((True or True) and False)
# False

<,>Bu müqayisə operatorları daha yüksək üstünlüklərə malikdirlər. Buna görə də, yuxarıdakı nümunədə olduğu kimi, hər bir müqayisə əməliyyatı üçün mötərizə lazım deyil.

print(0 < a and a < 100)
# True

Python-da operator üstünlüyünün xülasəsi üçün aşağıdakı rəsmi sənədlərə baxın.

booldan başqa tipli obyektlər üçün məntiqi operatorlar

With these logical operators, not only bool types (true, false), but also numbers, strings, lists, etc. are processed as boolean values.

Aşağıdakı obyektlər Python-un məntiqi əməliyyatlarında yalan hesab olunur.

  • Sabitlər yanlış olaraq təyin olunur:None,false
  • Rəqəm tiplərində sıfır:0,0,0j,Decimal(0),Fraction(0, 1)
  • Boş ardıcıllıq və ya kolleksiya:',(),[],{},set(),range(0)

Bütün digər dəyərlər doğru hesab olunur.

bool() funksiyası obyektin boolean dəyərini almaq üçün istifadə edilə bilər. Qeyd edək ki, ‘0’ və ya ‘Yanlış’ sətirləri doğru hesab olunur.

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

Sətirdə ‘0’ və ya ‘yanlış’ı false kimi idarə etmək üçün distutils.util.strtobool() istifadə edin.

and,orBu qaytarılan dəyərlər mütləq bool tipli deyil.

Burada hər bir operatorun nəticəsini ədədi dəyərdə göstərən bool tipindən başqa obyekt nümunəsidir.

x = 10  # True
y = 0  # False

print(x and y)
# 0

print(x or y)
# 10

print(not x)
# False

Yuxarıdakı misaldan göründüyü kimi, və və ya Python-da bool tipində doğru və ya false deyil, doğru və ya yalan olmasından asılı olaraq dəyəri sol və ya sağa qaytarın. Nümunə rəqəmsaldır, lakin eyni şey sətirlər və siyahılar kimi digər növlərə də aiddir. Yeri gəlmişkən, not bool tipli doğru və ya yalanı qaytarır.

və və ya qaytarma dəyərlərinin tərifləri aşağıdakı kimidir.

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

Sol və sağ ifadələrin dəyərləri ayrı-ayrılıqda doğru və yalan olduqda, qaytarılan dəyərləri başa düşmək asandır. Digər tərəfdən, hər ikisi doğrudursa və ya hər ikisi yanlışdırsa, qaytarma dəyəri sifarişdən asılı olaraq fərqli olacaq.

Əgər siz onu if ifadəsində və s.-də şərti ifadə kimi istifadə etsəniz, nəticə boolean dəyər kimi qiymətləndirilir və emal edilir, ona görə də bu barədə narahat olmağa ehtiyac yoxdur, lakin sonrakı emal üçün qaytarılan dəyərdən istifadə edirsinizsə, siz diqqətli olmaq lazımdır.

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

Əgər onu doğru və ya yalan hesab etmək istəyirsinizsə, sonuncu misaldakı kimi edə bilərsiniz.
bool(x and y)

və və ya geri qaytarılan dəyərlər aşağıdakı cədvəldə ümumiləşdirilmişdir.

xyx and yx or y
truefalseyx
falsetruexy
truetrueyx
falsefalsexy

Qısa qapanma (qısa qapanma qiymətləndirməsi)

Yuxarıdakı cədvəldən göründüyü kimi, x və y-də x yanlışdırsa və ya x və ya y-də x doğrudursa, y-nin dəyərindən asılı olmayaraq qaytarılan dəyər x olacaqdır.

Belə olan halda y qiymətləndirilmir.

and,orNəzərə alın ki, bəzi emal etmək üçün bu proseslərin sağ tərəfindəki funksiya və ya metodu çağırsanız, sol tərəfdəki nəticədən asılı olaraq proses icra olunmaya bilər.

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