Ачааллж байна...
Энэ бол "Анхны кодууд" бүлгийн сүүлчийн хичээл бөгөөд бид шинэ тушаал, шинэ тэмдэг үзэхгүй. Оронд нь бид нэг алхам ухарч, том зургийг харна: Python таны бичсэн олон мөр кодыг чухам ямар журмаар уншиж, биелүүлдэг вэ? Энэ асуулт эхлээд хэтэрхий энгийн мэт санагдаж болно — "дээрээс нь доош нь уншдаг биз дээ" гэж та аль хэдийн таамаглаж байгаа байх, тэр таамаг тань зөв. Гэхдээ энэ энгийн дүрмийг гүнзгий, бат ойлгох нь цаашдын бүх хичээлийн суурь болдог юм. Учир нь дараагийн бүлгээс эхлээд бид "мэдээлэл хадгалаад, дараа нь ашигладаг" программууд бичих бөгөөд тэнд "аль мөр нь түрүүлж биелэх вэ" гэдэг асуулт амин чухал асуулт болж хувирдаг. Мэргэжлийн программистуудын кодоос алдаа хайдаг гол арга нь ч яг энэ хичээлд сурах чадвар байдаг: кодыг компьютер шиг, мөр мөрөөр нь дагаж уншина гэсэн үг.
Бүлэг 1-ийн жорын зүйрлэлийг эргэн саная. Тогооч жорыг хэрхэн дагадаг вэ? Эхний алхмаас эхэлж, түүнийг бүрэн дуусгаад, дараа нь хоёр дахь алхам руу шилжиж, тэгээд гурав дахь руу — алхам алгасахгүй, урагш харайхгүй, буцаж давтахгүй. "Зуурсан гурилаа 20 минут амраа" гэсэн алхам дээр тогооч 20 минут хүлээнэ — доод талын алхмуудыг "урьдчилаад" хийчихдэггүй. Python яг ийм тогооч: таны файлын хамгийн эхний мөрөөс эхэлж, тэр мөрийг бүрэн биелүүлээд, дараагийн мөр рүү бууна. Ингэсээр хамгийн сүүлийн мөрийг биелүүлээд дуусахад программ төгсдөг. Энэ л бүх нууц — гэхдээ одоо энэ нууцыг ажил дээр нь бариад үзье.
Программистууд кодыг компьютер шиг дагаж уншихыг мөшгих (trace хийх) гэж ярьдаг — мөрөөр нь дагаад, алхам бүрд юу болохыг тэмдэглээд явна гэсэн үг. Дараах жижиг программыг хамтдаа мөшгье:
python
# Өглөөний хөтөлбөр
print("Сэрлээ")
print("Нүүрээ угаалаа")
print("Цай уулаа")Python энэ файлыг нээгээд юу хийхийг нь цагийн зүү шиг дагаж үзье. 1-р мөр: # тэмдгээр эхэлсэн тул энэ бол comment — Python "энэ хүнд зориулсан юм байна" гээд алгасна. Биелүүлэх зүйл гараагүй, дэлгэцэнд юу ч гараагүй. 2-р мөр: print заавар байна — Python "Сэрлээ" гэдгийг terminal-д хэвлэнэ. Энэ мөрийн ажил дууслаа, доош бууна. 3-р мөр: дараагийн print — "Нүүрээ угаалаа" хэвлэгдэнэ. 4-р мөр: сүүлчийн print — "Цай уулаа" хэвлэгдэнэ. Мөр дууслаа, файлд өөр мөр алга — программ төгслөө. Үр дүн:
Сэрлээ
Нүүрээ угаалаа
Цай уулааГарсан дараалал бичсэн дараалалтай яг ижил байгааг харж байна уу? Энэ бол санамсаргүй биш, баталгаа: үр дүнгийн дараалал бол биелэлтийн дарааллын толь юм. Terminal дээр юу түрүүлж гарсныг харвал аль мөр түрүүлж биелснийг мэднэ.
Хоёр дахь жишээ: дарааллыг нь өөрчилье. Одоо энэ хичээлийн гол туршилт. Яг өмнөх программын мөрүүдийг байгаагаар нь, зөвхөн дарааллыг нь сольж бичье:
python
# Өглөөний хөтөлбөр — дараалал нь солигдсон
print("Цай уулаа")
print("Сэрлээ")
print("Нүүрээ угаалаа")Үр дүн:
Цай уулаа
Сэрлээ
Нүүрээ угаалааМөрүүд нэг бүрчлэн адилхан — гурван print, ижил гурван бичвэр. Гэтэл гарсан "түүх" маань утгаараа эвдэрчихлээ: цайгаа уучихаад дараа нь сэрдэг хүн гэж байхгүй. Python үүнд огт санаа зовсонгүй гэдгийг анзаараарай: алдаа ч гаргаагүй, анхааруулга ч өгөөгүй, зүгээр л өгсөн дарааллаар нь биелүүлсэн. Энэ бол Бүлэг 1-ийн "компьютер юу ч ойлгодоггүй" гэдэг үнэний шинэ нүүр царай: Python мөрүүдийн утгын дарааллыг шалгадаггүй, зөвхөн бичсэн дарааллыг дагадаг. Зөв дараалал бол бүхэлдээ таны — жор бичигчийн — хариуцлага. Ижил "тоосгонуудаас" өөр дараалалд өөр "байшин" босдог гэдгийг энэ хоёр жишээ харууллаа.
Гурав дахь жишээ: тооцоолол дундах дараалал. Дараалал зөвхөн бичвэрийн утгад биш, тооцооллын явцад ч нөлөөлдөг. Дараах программыг мөшгье — гурван шатлалтай тайлан гаргаж байна гэж төсөөлье:
python
print("Тайлан эхэллээ")
print(10 + 5)
print(10 - 5)
print("Тайлан дууслаа")Мөшгилт: 1-р мөр "Тайлан эхэллээ" гэж хэвлэнэ. 2-р мөрөнд Python эхлээд хаалтан доторх 10 + 5-ыг бодож 15 болгоод, дараа нь хэвлэнэ (өмнөх хичээлийн дүрэм: хаалт доторх тооцоолол эхэлж боловсрогддог). 3-р мөрөнд мөн адил 10 - 5 нь 5 болж хэвлэгдэнэ. 4-р мөр төгсгөлийн бичвэрийг хэвлэнэ. Үр дүн:
Тайлан эхэллээ
15
5
Тайлан дууслааЭнд нэг нарийн зүйл нуугдаж байна: мөр дотор ч гэсэн дараалал бий. Нэг мөрийг биелүүлэхдээ Python эхлээд хаалтан доторхыг бүрэн бодож дуусгаад, зөвхөн дараа нь print ажлаа хийдэг. Өөрөөр хэлбэл дараалал хоёр түвшинд ажиллаж байна — мөрүүдийн хооронд (дээрээс доош) ба мөрийн дотор (дотроос гадагш). Одоохондоо "мөр доторх" дарааллын энэ нэг л дүрмийг мэдэхэд хангалттай; том жишээнүүд нь хожмын хичээлүүдэд бий.
Дөрөв дэх жишээ: comment дараалалд нөлөөлдөггүй. Өмнөх хичээлийн мэдлэгээ дарааллын дүрэмтэй холбоё:
python
print("Нэгдүгээрт")
# print("Хоёрдугаарт")
# Энд урт тайлбар байна
# Энд бас нэг тайлбар байна
print("Гуравдугаарт")Үр дүн:
Нэгдүгээрт
ГуравдугаартМөшгилт: 1-р мөр хэвлэгдэнэ. 2, 3, 4-р мөрүүд бүгд # тэмдэгтэй тул Python гурвууланг нь дараалан алгасна — гурван мөр "алгассан" ч дарааллын гинж тасраагүй, Python зүгээр л дараагийн жинхэнэ заавар хүртэл доошоо гулссан. 5-р мөр хэвлэгдэнэ. Эндээс гарах дүгнэлт: comment-ууд дарааллын гинжин хэлхээнд "байхгүй" мэт тоологддог — тэд хэвлэгдэх ээлж авдаггүй, ээлжийг ч хойшлуулдаггүй. Мөн "Хоёрдугаарт" гэсэн мөр үр дүнд алга байгаа нь өмнөх хичээлийн "чимээгүй унтраалт"-ын жишээ мөн: алдаа гараагүй ч гарц дутуу — шалтгааныг нь та одоо хоёр хичээлийн мэдлэгээр бүрэн тайлбарлаж чадна.
Хүсвэл нэг сонирхолтой дасгал туршаад үзээрэй: өөрийнхөө өдрийн 4-5 үйлдлийг print мөрүүдээр бичээд (жишээ нь хичээлдээ явсан, хоолоо идсэн, тоглосон, унтсан), ажиллуулж хараад, дараа нь мөрүүдийнхээ дарааллыг зориуд хольж ажиллуулаарай. Terminal дээрх "түүх" тань хэрхэн өөрчлөгдөхийг харах нь энэ хичээлийн дүрмийг гарт чинь бүрэн буулгана. Сонирхвол дундах нэг мөрөө коммэнтлож "унтраагаад" үр дүнг урьдчилан таамаглаж үзээрэй — таамаг тань таарч байвал та энэ хичээлийг бүрэн эзэмшсэн гэсэн үг.
Энэ хичээл шинэ бичиглэл заагаагүй тул энд "улаан алдаа" гэхээсээ илүү дарааллын эргэлзээнүүд буюу алдааны мэдэгдэлгүй мөртлөө хүлээлт биелдэггүй байдлууд амьдардаг. Гурвыг нь урьдчилан таниулъя.
Эргэлзээ 1: "Хамгийн чухал мөрөө эхэнд нь бичье" гэсэн ойлголт. Зарим эхлэгч "энэ мөр хамгийн чухал учраас Python үүнийг түрүүлж хийнэ" гэж бодож, чухал зааврaa файлын эхэнд аваачдаг. Гэвч Python-д "чухал" гэсэн ойлголт байхгүй — дараалал бол ач холбогдлын жагсаалт биш, цагийн хуваарь юм. Эхний мөр "хамгийн чухал нь" биш, "хамгийн түрүүнд болох нь". Мөрөө шилжүүлэхдээ "энэ хэзээ биелэх ёстой вэ" гэж асуугаарай, "энэ хэр чухал вэ" гэж биш.
Эргэлзээ 2: Хоёр мөр "зэрэг" ажиллана гэсэн төсөөлөл. Хоёр print зэрэгцээ бичсэн учраас хоёулаа нэгэн зэрэг дэлгэцэнд гарна гэж төсөөлж болох ч, тийм зүйл болдоггүй: Python үргэлж нэг л мөр дээр "амьдарч" байдаг — нэгийг дуусгаад дараагийхад ордог. Компьютер асар хурдан тул хүний нүдэнд бүгд зэрэг гарсан мэт харагдаж болно, гэхдээ жинхэнэ явц нь үргэлж ганц файлаар цуваа юм. Энэ ойлголт хожим, программ удаан ажиллах үед "яг аль мөрөн дээр нь байгаа юм бол" гэж бодоход хэрэг болно.
Эргэлзээ 3: Мөрийн дугаар өөрчлөгдөхөд алдааны заалт "нүүдэг". Өмнөх хичээлүүдэд алдааны мэдэгдэл line 1, line 3 гэх мэтээр мөрийн дугаар зааж өгдгийг үзсэн. Одоо та мөрүүдийг чөлөөтэй сэлгэдэг болсон тул нэг зүйлийг санаж яваарай: мөр нэмэх, хасах, солиход мөрийн дугаарууд шинэчлэгддэг — тиймээс алдааны мэдэгдэл дэх line гэсэн тоо үргэлж кодынхоо одоогийн байдлыг заадаг. "Саяын алдаа line 5 гэсэн байсан" гэж цээжлэхийн оронд, алдаа гарах бүрд шинэ мэдэгдлийнх нь дугаарыг уншаарай. VS Code дээр мөр бүрийн дугаар кодын зүүн захад бичээстэй байдгийг ашиглан заасан мөрийг шууд олоорой.
Python кодыг дээрээс доош, мөр мөрөөр, нэгийг бүрэн дуусгаад дараагийхад орох журмаар биелүүлдэг — жорыг дагадаг тогооч шиг.
Үр дүнгийн дараалал биелэлтийн дарааллыг тольддог: юу түрүүлж гарсан нь юу түрүүлж биелснийг хэлдэг.
Ижил мөрүүд өөр дараалалд өөр үр дүн өгдөг — утгын зөв дараалал бол Python-ы биш, таны хариуцлага.
Нэг мөрийн дотор ч дараалал бий: хаалт доторх эхэлж боловсрогдоод, дараа нь print биелдэг.
Comment-ууд дарааллын гинжинд ээлж эзэлдэггүй — Python тэдгээрийг алгасаад л урагшилдаг.
Ингээд "Анхны кодууд" бүлэг өндөрлөж, та гурван суурь чадвартай боллоо: хэвлэх, тэмдэглэх, мөшгих. Дараагийн бүлэгт бид энэ сургалтын анхны жинхэнэ том ойлголт руу орно: variable — компьютерт мэдээлэл хадгалах арга. Яагаад "дараалал" хичээл яг үүний өмнө орсныг та тэнд ойлгоно: мэдээллийг эхлээд хадгалаад, дараа нь ашигладаг учраас мөрийн дараалал тэнд амин чухал болж ирдэг юм.
Бүртгэлтэй болсноор энэ сургалтын бүх хичээлд хандах эрх авна.