Python дахь нөхцөлт if хэллэг. Синтакс, else/elif блокууд, жишээнүүд

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

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

Хяналтын мэдэгдлийн төрлүүд

Ерөнхийдөө if бол програмын урсгалыг хянадаг цорын ганц мэдэгдэл биш юм. Түүнчлэн тэрээр өөрөө томоохон операторуудын гинжин хэлхээний бүрэлдэхүүн хэсэг болж чаддаг.

Мөн түүний гүйцэтгэлийн үйл явцыг хянадаг гогцоо, мэдэгдлүүд байдаг. Өнөөдөр бид зөвхөн нөхцөлт оператор болон түүний оролцож болох сүлжээнүүдийн талаар ярих болно.

Програмчлалд салбарлах гэдэг зүйл байдаг. Энэ нь зөвхөн тодорхой нөхцөл үнэн бол гүйцэтгэгдэх командуудын дараалал гэсэн үг юм. Шалгуурууд нь өөр байж болно:

  1. Хувьсагчийн тодорхой утгатай тэнцүү байх.
  2. Тодорхой үйлдэл хийх.
  3. Хэрэглээний төлөв (нурсан эсвэл үгүй).

Спектр нь илүү том байж болно. Нөхцөлт мэдэгдлүүд хэд хэдэн төрлөөр ирдэг:

  1. Нэг салбартай. Өөрөөр хэлбэл, нэг шалгалт хийгддэг бөгөөд үүний үр дүнд тодорхой үйлдлүүд хийгддэг.
  2. Хоёр ба түүнээс дээш салбартай. Хэрэв 1-р шалгуур үнэн бол 2-р шалгуурыг шалгана уу. Хэрэв үнэн бол 3-ыг шалгана уу. Тиймээс шаардлагатай бүх шалгалтыг хийнэ үү.
  3. Хэд хэдэн нөхцөлтэйгээр. Энд бүх зүйл энгийн. Орчуулагч олон нөхцөл эсвэл тэдгээрийн аль нэгийг шалгадаг.

if мэдэгдэл

if хэллэгийн бүтэц нь бүх хэл дээр ижил байдаг. Гэсэн хэдий ч Python-д түүний синтакс нь бусад бүхнээс арай өөр юм:

нөхцөл бол:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

Нэгдүгээрт, операторыг өөрөө зарлаж, дараа нь ажиллаж эхлэх нөхцөлийг бичнэ. Нөхцөл нь үнэн эсвэл худал байж болно.

Үүний дараа тушаал бүхий блок гарч ирнэ. Хэрэв энэ нь биелүүлэх ёстой шалгуурыг шууд дагаж мөрдвөл харгалзах командуудын дарааллыг if блок гэж нэрлэдэг. Та үүнд хэдэн ч команд ашиглаж болно.

Анхаар! if блок командуудын доторх догол мөр нь ижил хэмжээтэй байх ёстой. Блокны хил хязгаарыг догол мөрөөр тодорхойлно. 

Хэлний баримт бичгийн дагуу догол нь 4 зайтай байна. 

Энэ оператор хэрхэн ажилладаг вэ? Орчуулагч if үгийг хараад хэрэглэгчийн тодорхойлсон шалгуурын дагуу илэрхийллийг шууд шалгана. Хэрэв ийм зүйл тохиолдвол тэр заавар хайж, дагаж эхэлдэг. Үгүй бол энэ блокийн бүх тушаалыг алгасах болно.

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

Энэ оператор хэрхэн ажилладаг тухай жишээний кодын хэсэг энд байна.

тоо = int(оролт("Тоо оруулна уу:"))

Хэрэв тоо > 10 бол:

    хэвлэх("Тоо нь 10-аас их")

Энэ программ нь хэрэглэгчээс тоо асууж, 10-аас их эсэхийг шалгадаг. Хэрэв тийм бол тохирох мэдээллийг буцаана. Жишээлбэл, хэрэв хэрэглэгч 5-ын тоог оруулбал програм зүгээр л дуусна, тэгээд л болоо.

Харин 100-ын тоог зааж өгвөл орчуулагч арав гаруй гэдгийг ойлгож мэдээлнэ.

Анхаар! Манай тохиолдолд хэрэв нөхцөл худал бол зааврын дараа ямар ч тушаал өгөхгүй тул програм зогсдог.

Дээрх кодонд ганцхан тушаал байна. Гэхдээ тэднээс илүү олон бий. Цорын ганц шаардлага бол догол хийх явдал юм.

Одоо энэ тушаалуудын дарааллыг шинжилье.

тоо = int(оролт("Тоо бичих:"))

Хэрэв тоо > 10 бол:

    хэвлэх ("эхний мөр")

    хэвлэх ("хоёр дахь мөр")

    хэвлэх("гурав дахь мөр")

хэвлэх("Оруулсан дугаараас үл хамааран гүйцэтгэх мөр")

хэвлэх("Төгсгөлийн програм")

Хэрэв та 2, 5, 10, 15, 50 гэсэн утгыг оруулбал үр дүн нь юу болохыг таахыг хичээ.

Таны харж байгаагаар, хэрэв хэрэглэгчийн оруулсан тоо араваас дээш байвал гурван мөр гарна + нэг нь "Үргэлж ажиллуулах ..." ба нэг "Төгсгөл" гэсэн тексттэй, араваас бага бол зөвхөн нэг мөр гарч ирнэ. өөр текст. Хэрэв үнэн бол зөвхөн 3,4,5-р мөрүүдийг гүйцэтгэнэ. Гэхдээ сүүлийн хоёр мөр нь хэрэглэгч ямар дугаар зааж өгсөнөөс үл хамааран бичигдэнэ.

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

Бид дараах тушаалуудын дарааллыг бичсэн гэж бодъё.

>>>

>>> n = 100

>>> хэрэв n > 10 бол:

...

Үүний дараа >>>-г эллипсээр сольсныг бид харах болно. Энэ нь олон мөр оруулах горим идэвхжсэн гэсэн үг. Энгийнээр хэлбэл, хэрэв та Enter товчийг дарвал зааврын хоёр дахь шатны оролт руу шилжих болно. 

Мөн энэ блокоос гарахын тулд та блок дээр нэг барилга нэмж оруулах хэрэгтэй if.

>>>

>>> n = 100

>>> хэрэв n > 10 бол:

... хэвлэх(«nv 10»)

...

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

илэрхийллийн оператор хэрэв үгүй ​​бол

Энэ оператор нь холбоосыг хэрэгжүүлэх боломжийг олгодог: хэрэв илэрхийлэл нь тодорхой дүрэмтэй тохирч байвал эдгээр үйлдлийг гүйцэтгэнэ, хэрэв үгүй ​​бол бусад. Энэ нь хөтөлбөрийн урсгалыг хоёр замд хуваах боломжийг олгодог. Синтакс нь ойлгомжтой:

нөхцөл бол:

    # хэрэв блок

    мэдэгдэл 1

    мэдэгдэл 2

    гэх мэт

өөр:

    # өөр блок

    мэдэгдэл 3

    мэдэгдэл 4

    гэх мэт:

Энэ оператор хэрхэн ажилладагийг тайлбарлая. Нэгдүгээрт, хэлхээнд стандарт мэдэгдлийг гүйцэтгэдэг yew, таарч байгаа эсэхийг шалгаж байна нөхцөл байдал "үнэн эсвэл худал". Цаашдын арга хэмжээ нь шалгалтын үр дүнгээс хамаарна. Хэрэв үнэн бол нөхцөлийг дагаж мөрдсөн зааварчилгааг шууд гүйцэтгэнэ. yew, хэрэв худлаа бол бас

Ингэснээр та алдааг зохицуулж чадна. Жишээлбэл, хэрэглэгч радиус оруулах шаардлагатай. Мэдээжийн хэрэг, энэ нь зөвхөн нэмэх тэмдэгтэй тоо байж болно, эсвэл энэ нь тэг утга юм. Хэрэв энэ нь 0-ээс бага бол эерэг тоо оруулахыг хүссэн мессеж илгээх шаардлагатай. 

Энэ даалгаврыг хэрэгжүүлэх код энд байна. Гэхдээ энд нэг алдаа байна. Аль нь болохыг таахыг хичээ. 

радиус = int(оролт("Радиус оруулна уу:"))

радиус >= 0 бол:

    хэвлэх(“Тойрог = “, 2 * 3.14 * радиус)

    хэвлэх(“Талбай = “, 3.14 * радиус ** 2)

    өөр:

        хэвлэх("Эерэг тоо оруулна уу")

Доголын таарахгүй алдаа. Хэрэв ба Өөр тэдгээргүйгээр эсвэл ижил тооны (тэдгээрийг үүрлэсэн эсэхээс хамаарч) байрлуулах ёстой.

Нууц үгийг шалгадаг програмын элемент болох өөр хэрэглээний тохиолдлыг (операторын тохируулгатай бүх зүйл зөв байх болно) өгье.

нууц үг = оруулах ("Нууц үгээ оруулна уу:")

нууц үг == "sshh" бол:

    хэвлэх("Тавтай морил")

өөр:

    хэвлэх("Хандалтыг хориглосон")

Хэрэв нууц үг нь sshh бол энэ заавар нь тухайн хүнийг цааш алгасдаг. Хэрэв үсэг, тоонуудын өөр хослол байвал "Хандалтыг хориглосон" гэсэн мессеж гарч ирнэ.

мэдэгдэл-илэрхийлэл if-elif-else

Зөвхөн хэд хэдэн нөхцөл буруу байвал блок дотор байгаа мэдэгдлийг гүйцэтгэнэ. бас. Энэ илэрхийлэл ийм байдлаар ажилладаг.

хэрэв нөхцөл_1:

    # хэрэв блок

    мэдээ

    мэдээ

    илүү мэдэгдэл

elif нөхцөл_2:

    # анхны elif блок

    мэдээ

    мэдээ

    илүү мэдэгдэл

elif нөхцөл_3:

    # хоёр дахь элиф блок

    мэдээ

    мэдээ

    илүү мэдэгдэл

...

бас

    мэдээ

    мэдээ

    илүү мэдэгдэл

Та хэдэн ч нэмэлт нөхцөлийг зааж өгч болно.

Оруулсан мэдэгдлүүд

Олон нөхцөлийг хэрэгжүүлэх өөр нэг арга бол if блокт нэмэлт нөхцөл шалгах оруулах явдал юм.

Оператор if өөр нөхцөл байдлын блок дотор

gre_score = int("Одоогийн зээлийн хязгаараа оруулна уу"))

per_grad = int(input("Зээлийн зэрэглэлээ оруулна уу: "))

хэрвээ нэг градусаас > 70:

    # гадаад if блок

        хэрэв gre_score > 150 бол:

            # дотоод if блок

    хэвлэх("Баяр хүргэе, та зээл авсан")

өөр:

    хэвлэх("Уучлаарай, та зээл авах эрхгүй")

Энэ програм нь зээлийн үнэлгээний шалгалт хийдэг. Хэрэв энэ нь 70-аас бага бол програм нь хэрэглэгч зээл авах эрхгүй гэж мэдээлдэг. Хэрэв энэ нь илүү бол одоогийн зээлийн хязгаар 150-аас их байгаа эсэхийг шалгахын тулд хоёр дахь шалгалтыг хийнэ. Хэрэв тийм бол зээл олгосон гэсэн мессеж гарч ирнэ.

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

Одоо тэр программыг жаахан дахин боловсруулъя.

gre_score = int(оролт("Одоогийн хязгаарыг оруулна уу:"))

per_grad = int(оруулга("Зээлийн оноог оруулна уу:"))

хэрвээ нэг градусаас > 70:

    хэрэв gre_score > 150 бол:

        хэвлэх("Баяр хүргэе, та зээл авсан")

    өөр:

        хэвлэх("Таны зээлийн хязгаар бага байна")

өөр:

    хэвлэх("Уучлаарай, та зээл авах эрхгүй")

Код нь өөрөө маш төстэй боловч үүрлэсэн if Мөн нөхцөл нь худал болж хувирсан тохиолдолд алгоритмыг өгдөг. Өөрөөр хэлбэл, картын хязгаарлалт хангалтгүй, гэхдээ зээлийн түүх сайн, "Таны зээлийн үнэлгээ бага байна" гэсэн мессеж гарч ирнэ.

нөхцөл доторх if-else хэллэг бас

Шалгалтын оноогоор оюутны үнэлгээг тодорхойлдог өөр программ хийе.

оноо = int(оролт("Оноогоо оруулна уу:"))

оноо >= 90 бол:

    хэвлэх("Гайхалтай! Таны үнэлгээ А")

өөр:

    оноо >= 80 бол:

хэвлэх("Гайхалтай! Таны үнэлгээ В")

    өөр:

оноо >= 70 бол:

    хэвлэх("Сайн байна! Таны үнэлгээ С")

өөр:

    оноо >= 60 бол:

print("Таны үнэлгээ D. Материалыг давтах нь зүйтэй.")

    өөр:

хэвлэх("Та шалгалтанд тэнцээгүй")

Аппликешн эхлээд оноо 90-ээс их эсвэл тэнцүү эсэхийг шалгана. Хэрэв тийм бол А үнэлгээ өгнө. Хэрэв энэ нөхцөл худал бол дараагийн шалгалтыг хийнэ. Алгоритм нь эхлээд харахад бараг адилхан гэдгийг бид харж байна. Тиймээс дотор нь шалгахын оронд бас хослуулан хэрэглэх нь дээр if-elif-else.

Тиймээс оператор if Энэ нь маш чухал функцийг гүйцэтгэдэг - энэ нь зөвхөн шаардлагатай тохиолдолд л тодорхой кодын хэсгүүдийг гүйцэтгэх боломжийг олгодог. Програмчлалыг үүнгүйгээр төсөөлөхийн аргагүй, учир нь хамгийн энгийн алгоритмууд хүртэл "зүүн тийшээ явбал олно, баруун тийш явбал энийг хийх хэрэгтэй" гэх мэт сэрээ шаарддаг.

хариу үлдээх