Python-ийн логик операторууд ба, эсвэл, биш (логик холболт, салгах, үгүйсгэх)

Бизнес эрхэлдэг

Python нь логик (Boolean) үйлдлийг гүйцэтгэх логик операторуудыг өгдөг.(and,or,not)
Энэ нь if хэллэг дэх олон нөхцөл хоорондын хамаарлыг тодорхойлоход хэрэглэгддэг.

Энэ хэсэгт дараахь зүйлийг тайлбарлана.

  • уулзвар:and
  • логик нэмэх:or
  • үгүйсгэх:not
  • and,or,notОператорын давуу эрх

Нэмж дурдахад дараах зүйлсийг анхааруулж байна.

  • bool-аас өөр төрлийн объектын логик операторууд
  • and,orЭдгээр буцаах утгууд нь заавал bool төрлийн байх албагүй.
  • Богино холболт (богино холболтын үнэлгээ)

уулзвар:and

мөн хоёр утгын логик үржвэрийг буцаана.

print(True and True)
# True

print(True and False)
# False

print(False and True)
# False

print(False and False)
# False

Үнэн хэрэгтээ энэ нь ихэвчлэн үнэн эсвэл худал биш, харин харьцуулах операторуудыг ашиглан нөхцөлт илэрхийлэлд ашиглагддаг. Таны мэдээлэлд харьцуулах операторууд дараах байдалтай байна.

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

print(a < 100)
# True

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

ба дараах байдлаар нэгтгэж болно.

print(0 < a < 100)
# True

логик нэмэх:or

эсвэл хоёр утгын логик OR-г буцаана.

print(True or True)
# True

print(True or False)
# True

print(False or True)
# True

print(False or False)
# False

үгүйсгэх:not

not&#8221; нь утгын үгүйсгэлийг буцаана; үнэн ба худал нь эсрэгээр.

print(not True)
# False

print(not False)
# True

and,or,notОператорын давуу эрх

Эдгээр логик операторуудын тэргүүлэх дараалал нь дараах байдалтай байна: not нь хамгийн өндөр.

  1. not
  2. and
  3. or

Дараах жишээ кодонд дээрх илэрхийллийг доор байгаа мэтээр тайлбарлав. Нэмэлт хаалтанд ямар ч асуудал байхгүй тул энэ жишээн дээр тэдгээрийг тодорхой тайлбарлах нь илүү хялбар байх болно.

print(True or True and False)
# True

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

Хэрэв та ажиллахыг хүсэж байгаа бол эсвэл өмнө нь, хаалт() ашиглана уу.

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

<,>Эдгээр харьцуулах операторууд илүү давуу эрхтэй байдаг. Иймд дээрх жишээн дээр үзүүлсэн шиг харьцуулах үйлдэл бүрт хаалт шаардлагагүй.

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

Python хэл дээрх операторын давуу байдлын хураангуйг доорх албан ёсны баримт бичгээс харна уу.

bool-аас өөр төрлийн объектын логик операторууд

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

Дараах объектуудыг Python-ийн логик үйлдлүүдэд худал гэж үздэг.

  • Тогтмолыг худал гэж тодорхойлсон:None,false
  • Тоон төрлүүдийн хувьд тэг:0,0,0j,Decimal(0),Fraction(0, 1)
  • Хоосон дараалал эсвэл цуглуулга:',(),[],{},set(),range(0)

Бусад бүх утгыг үнэн гэж үзнэ.

Объектийн логикийн утгыг авахын тулд bool() функцийг ашиглаж болно. “0&#8221; эсвэл “Худал&#8221; гэсэн мөрийг үнэн гэж үзнэ гэдгийг анхаарна уу.

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

Мөр дэх “0&#8221; эсвэл “худал&#8221;-ыг худал гэж үзэхийн тулд distutils.util.strtobool()-г ашиглана уу.

and,orЭдгээр буцаах утгууд нь заавал bool төрлийн байх албагүй.

Оператор бүрийн үр дүнг тоон утга дээр харуулсан bool төрлөөс өөр объектын жишээ энд байна.

x = 10  # True
y = 0  # False

print(x and y)
# 0

print(x or y)
# 10

print(not x)
# False

Дээрх жишээнээс харж байгаачлан Python-д болон болон эсвэл bool төрлийн үнэн эсвэл худал гэж буцаахгүй, харин үнэн эсвэл худал эсэхээс хамаарч утгыг зүүн эсвэл баруун талд буцаана. Жишээ нь тоон үзүүлэлт боловч мөр, жагсаалт зэрэг бусад төрөлд мөн адил хамаарна. Дашрамд хэлэхэд, not bool төрлийн үнэн эсвэл худал утгыг буцаана.

болон болон эсвэл-ийн буцаах утгуудын тодорхойлолтууд дараах байдалтай байна.

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

Зүүн ба баруун илэрхийллийн утгууд нь үнэн ба худал тус тусад нь байвал буцах утгыг ойлгоход хялбар болно. Нөгөө талаас, хэрэв хоёулаа үнэн эсвэл хоёулаа худал бол буцах утга нь дарааллаас хамааран өөр өөр байх болно.

Хэрэв та үүнийг if хэллэг гэх мэт нөхцөлт илэрхийлэл болгон ашиглавал үр дүнг логикийн утга гэж үзэж, боловсруулдаг тул та санаа зовох хэрэггүй болно, гэхдээ хэрэв та буцах утгыг цааш боловсруулахдаа ашиглавал болгоомжтой байх хэрэгтэй.

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

Хэрэв та үүнийг үнэн эсвэл худал гэж үзэхийг хүсвэл сүүлийн жишээн дээрх шиг хийж болно.
bool(x and y)

болон болон эсвэл-ийн буцаах утгуудыг доорх хүснэгтэд нэгтгэн харуулав.

xyx and yx or y
truefalseyx
falsetruexy
truetrueyx
falsefalsexy

Богино холболт (богино холболтын үнэлгээ)

Дээрх хүснэгтээс харахад x ба у-д x худал, эсвэл x эсвэл у-д x нь үнэн бол у-ийн утгаас үл хамааран буцах утга нь x болно.

Ийм тохиолдолд y-г үнэлдэггүй.

and,orХэрэв та эдгээр процессуудын баруун талд байгаа функц эсвэл аргыг дуудаж зарим боловсруулалт хийвэл зүүн талд байгаа үр дүнгээс хамааран процесс ажиллахгүй байж болохыг анхаарна уу.

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