Python Conditional Execution

Python Boolean expressions

Boolean expressions
(Логиĸ илэрхийлэл)

Boolean expression нь true эсвэл false гэсэн утгыг илэрхийлдэг. Дараах жишээнд 2 зүйлийг харьцуулаад хэрэв тэнцүү байвал 'true' бусад тохиолдолд 'false' утга буцаадаг '==' - операторыг ашигласан байна.

True болон False нь bool ангилалд хамаардаг онцгой утгууд.

'==' оператор нь харьцуулалтын оператрууд ( comparison operators)-ын нэг юм. Бусад оператрууд:

NOTE: Давхар тэнцүүгийн тэмдг (==)-ийн оронд дан тэнцүүгийн тэмдэг (=) ашигласнаас болж алдаа гарах тохиолдол их гардаг. (=) тэмдэг нь assignment operator буюу томилох оператор. Харин (==) тэмдэг нь comparison operator буюу харьцуулалтын оператор. Мөн дээрх зурагт '=>' ба '=>' гэсэн оператор байхгүйг ажиглаарай.

Python Logical operators

Logical operators
(Логиĸ оператор)

and, or, not гэдэг 3-н logical operator байдаг. Эдгээр үгнүүд нь шууд утгаараа ашиглагддаг.

x > 0 and x < 10

Дээрх нөхцөл x нь 0-ээс их бас 10-аас бага байх үед true болно.

n%2 == 0 or n%

Дээрх нөхцөл true болохын тулд 'n' тоо нь 2 эсвэл 3-ын аль нэгэнд л хуваагддаг байхад л хангалттай.

Харин not операторын хувьд өгөгдсөн логиĸ илэрхийллийг үгүйсгэдэг. Жишээ нь: x > y буюу x нь y- аас их гэдэг нь false байвал not операторт энэ нь үнэн биш буюу not true гэсэн үг болно.

Python Conditional execution

Conditional execution
(Болзолт гүйцэтгэл)

Програм бичихэд бид байнга нөхцөл шалгаж тухайн нөхцөлийн дагуу програмынхаа үйл ажиллагааг өөрчлөх шаардлагатай байдаг. Conditional statement нь бидэнд энэ боломжийг олгодог. Үүний хамгийн энгийн хэлбэр нь if statement:

if statement-ийн араас бичигдэж байгаа логиĸ илэрхийллийг нөхцөл буюу condition гэж нэрлэдэг.

if statement-ийн нөхцөлийг тодорхойлох 2 цэгээр төгсгөх бөгөөд if statement дэх нөхцөл биелэж байх үед хийгдэх үйлдэл нь догол мөрнөөс эхэлнэ.

Хэрэв нөхцөл нь үнэн байвал догол мөр дэх үйлдэл хийгддэг. Харин нөхцөл нь худал байвал догол мөр дэх үйлдлийг алгасдаг.

if statement-ийн бүтэц нь function болон for loop-тэй адилхан. Эхний мөр нь тодорхойлох цэгээр төгсөж араас нь догол мөр бүхий блоĸ ордог.

Их бие буюу body хэсэгт хамгийн багадаа 1 мөр ĸод байх бөгөөд түүнээс дээш хэдэн ч мөр агуулагдаж болно.

Заримдаа body нь хоосон байх тохиолдол гарах эсвэл тухайн үед хийгдэх үйлдлийг хараахан тодорхойлоогүй байгаа бол pass гэсэн мэдэгдэл дамжуулах боломжтой.

Python Alternative execution

Alternative execution

if statement-ийн дараагийн хэлбэр нь alternative execution. Үүнд 2 өөр боломжит үр дүн байх бөгөөд нөхцөлөөс хамаарч аль нэг нь хийгдэнэ:

Хэрэв x-ийг 2-т хуваахад үлдэгдэл нь 0-тэй тэнцүү байвал x нь тэгш тоо гэсэн үг болох бөгөөд програм x is even гэдгийг харуулна. Хэрэв энэ нөхцөл худал байвал 2 дахь үйлдэл хийгдэнэ.

Нөхцөл нь үнэн эсвэл худал байх үед боломжит 2 үйлдлийн аль нэг нь заавал хийгдэнэ. alternative- ийг салаа/мөчир гэж ойлгож болно.

Python Chained conditionals

Chained conditionals

Заримдаа нэгээс олон боломжит үр дүн нь 2-оос олон байх бөгөөд энэ үед бидэнд 2-оос олон салаа хэрэгтэй болно. Үүнийг chained codition буюу гинжин нөхцөлөөр хийж болно:

elif гэдэг нь "else if" гэсэн үгний товчлол. Мөн адил нэг л салаа дахь үйлдэл хийгдэнэ.

Нэг дор elif-ийг хэдэн ч удаа ашиглаж болно. Харин else ашиглаж байгаа бол else нь эдгээрийн хамгийн доор байрлах ёстой. Шаардлагагүй бол else заавал байх албагүй:

Нөхцөлүүд дарааллын дагуу шалгагдана. Эхний нөхцөл худал байвал дараагийн нөхцөлийг шалгана гэх мэтээр. Тэгээд аль нэг нөхцөл нь үнэн байвал түүнд хамаарах ĸод ажиллаад тухайн үйлдэл дуусна. Хэрэв нэгээс олон нөхцөл үнэн байвал тэдгээрээс хамгийн эхэнд байрлах нөхцөлд хамаарах ĸодыг л ажиллуулдаг.

Python Nested conditionals

Nested conditionals

Нэг нөхцөл дотор дахин нэг нөхцөл шалгаж байх тохиолдол гардаг:

Дээрх жишээнд гаднах нөхцөл нь 2 салаалж байна. 2 дахь салаа нь дотроо дахин 2 салаалсан if statement-ийг агуулж байна.

Nested condition-ийг хараад ойлгоход тийм ч тодорхой биш байдаг учраас аль болох үүнийг ашиглахаас зайлсхийгээрэй.

Logical operator-ууд нь ихэвчлэн nested conditional-ийг хялбарчлахын тулд хэрэглэгддэг. Жишээ нь бид дараах үйлдлийг нэг нөхцөлөөр хийх боломжтой:

дээрхийг Logical operator ашиглаж хялбарчилвал:

Python Catching exceptions using try and except

Catching exceptions using try and except

Fahrenheit-ийг temperatur-руу шилуүүлдэх програм бичсэн байна:

Хэрэв дээрх ĸодын input-д хүчингүй утга өгвөл алдаа гарна:

Дээрх шиг гэнэтийн алдааг шийдвэрлэхийн тулд Python-д try / except гэдэг зүйл ашигладаг.

Эдгээр нь ĸод дээр алдаа гарах үед ямар нэг үйлдэл хийлгэмээр байгаа үед хэрэглэгдэнэ. Ямар нэг алдаа гараагүй үед тэрхүү нэмэлт (except блоĸ дахь хэсэг) хэсэг нь зүгээр л орхигдоно.

Тэгэхээр одоо температур хөрвүүлэгчийг ингэж бичиж болно:

Python нь try блоĸ дахь үйлдлүүдийг дарааллаар нь хийхийг оролддог. Хэрэв бүх үйлдэл алдаагүй хийгдвэл except дэх үйлдлийг алгасдаг. Харин try блоĸ-д ямар нэг алдаа гарвал except блоĸ дахь үйлдэл рүү шилжинэ.

Python Short-circuit evaluation of logical expressions

Short-circuit evaluation of logical expressions

x >= 2 and (x/y) > 2 гэх мэтээр logical operator ашиглах үед ĸод зүүнээс баруун тийш уншигддаг. and операторын утгаас болж хэрэв x нь 2-оос бага байвал x >= 2 гэдэг нь худал болж (x/y) > 2-ийн үнэн, худлаас үл хамааран энэ нөхцөл маань тэр чигтээ худал гэж тооцогдоно.

үүнийг short circuit the evaluation буюу тооцооллыг зогсоох гэдэг.

3 дахь тооцоолол дээр алдаа гарсан учир нь (x / y)-ийг тооцоолох гэтэл y нь 0-тэй тэнцүү байгаагаас болсон. Харин эхний 2 тооцоолол дээр алдаа гараагүйн учир нь эхнийх дээр y нь 0 биш, бас 2 дахь тооцооллын эхний илэрхийлэл нь худал гарч байгаа учраас 2 дахь илэрхийллийг бодохгүйгээр шууд тооцооллыг зогсооно. Ингэснээр ямар нэг алдаа гарахгүй болж байна.

Python Debugging

Debugging
(Алдаа засах)

Python алдаа гарах үед харуулдаг traceback нь их мэдээлэл агуулдаг боловч заримдаа төвөгтэй байж болно. Хамгийн хэрэгтэй хэсгүүд нь ихэвчлэн:

  • Ямар төрлийн алдаа байсан, мөн
  • Хаана гарсан.

Синтаксийн алдааг олоход амархан байдаг ч, цөөн хэдэн төөрөгдүүлэх зүйл бий. Хоосон зай нь алдаануудыг олоход хэцүү болгож байж болох юм, учир нь хоосон зай болон таб үсгүүд харагддаггүй бөгөөд бид тэдгээрийг үл тоомсорлох нь элбэг.

Энэ жишээнд, хоёр дахь мөр нэг хоосон зайгаар догол мөр болсон байгаа нь асуудал юм. Гэвч алдааны мессеж y-г заасан байгаа нь төөрөгдүүлэх мэт. Ерөнхийдөө, алдааны мессежүүд асуудал илрүүлсэн газраа заадаг боловч бодит алдаа нь кодын өмнөх хэсэгт, заримдаа өмнөх мөрөнд байж болно.

Python Conditional Execution

Glossary

Тайлбар толь

  • логик илэрхийлэл (boolean expression)
    Зөвхөн True эсвэл False утга авах илэрхийлэл.
  • chained conditional
    Хэд хэдэн салбартай нөхцөлт өгүүлбэр.
  • харьцуулах оператор (comparison operator)
    Операндуудыг харьцуулдаг операторуудын нэг:
    ==, !=, >, <, >=, болон <=.
  • логик оператор (logical operator)
    Логик илэрхийллүүдийг нэгтгэдэг операторуудын нэг: and, or, болон not
  • traceback
    Онцгой тохиолдол үүсэх үед хэвлэгдэх ажиллаж буй функцуудын жагсаалт.
  • богино холболт (short circuit)
    Python логик илэрхийллийг үнэлж байх үедээ үлдсэн хэсгийг үнэлэхгүйгээр эцсийн утгыг мэдэх боломжтой болсон үед үнэлгээг зогсоох үйлдэл.