Ачааллж байна...
Тавтай морил, жинхэнэ Python-ы эхний хичээлд. Өнгөрсөн хоёр бүлэгт та энэ мөртэй аль хэдийн хоёр удаа уулзсан: browser дээр нэг удаа, өөрийн компьютер дээр нэг удаа print гэдэг үгээр эхэлсэн мөр бичиж ажиллуулсан. Гэхдээ тэр хоёр удаад бид "яг байгаагаар нь бичээрэй" гэж хэлээд, яагаад ийм бичдэгийг нь тайлбарлалгүй өнгөрсөн — учир нь тэр үеийн зорилго орчноо бэлдэх байсан. Одоо цаг нь боллоо: энэ хичээлд бид print()-ийг задалж, тэмдэгт бүр нь яагаад тэнд байдгийг, юуг нь өөрчилж болдгийг, ямар алдаанууд хүлээж байдгийг бүрэн ойлгоно. Энэ хичээлийн дараа таны бичих print мөр бүр "цээжилсэн томьёо" биш, "ойлгосон заавар" байх болно.
Тэгвэл print() гэж юу вэ? Энгийнээр хэлбэл: print() бол компьютерт "энэ зүйлийг дэлгэц дээр харуул" гэж өгдөг заавар юм. Англи хэлний print гэдэг үг "хэвлэх" гэсэн утгатай бөгөөд энэ нэр компьютерын эртний үеэс уламжлагдсан — тэр үед компьютер үр дүнгээ дэлгэц биш, цаасан дээр жинхэнэ утгаараа хэвлэдэг байжээ. Өнөөдөр "хэвлэх" гэдэг нь дэлгэц дээр буюу таны хувьд terminal самбарт бичиг гаргахыг хэлдэг болсон ч нэр нь хэвээр үлдсэн юм. print() бол таны Python-той харилцах хамгийн анхны бөгөөд хамгийн байнгын хэрэгсэл: сургалтын туршид бид шинэ ойлголт бүрийг print()-ээр "харж" шалгах болно, мэргэжлийн программистууд ч кодоо шалгахдаа өдөр бүр print() ашигладаг.
print()-ийг ингэж төсөөлөөрэй: print() бол таны программын дуу хоолой юм. Бүлэг 1-д бид компьютерийг зааврыг чимээгүй, дуулгавартай биелүүлдэг гүйцэтгэгч гэж ярьсныг санаж байна уу? Тэр чимээгүй байдал нь үнэндээ жинхэнэ асуудал: компьютер таны зааврыг биелүүлсэн ч, хэлж өгөхгүй л бол юу болсныг танд огт мэдэгдэдэггүй. Компьютер дотроо 5 нэмэх 3-ыг тооцоолчихоод, хариугаа хэнд ч хэлэлгүй "дотроо" барьчихаж чадна — тооцоолол болсон, гэхдээ та юу ч харахгүй. print() бол яг энэ хана цөмлөдөг зүйл: "тооцоол" гэхийн оронд "тооцоолоод, хариугаа надад хэлж өг" гэж захидаг заавар юм. Тиймээс print() гэдэг нь программ дотор болж буй үйл явдлыг гадагш, хүний нүдэнд ил болгодог цонх, программын ам гэсэн үг. Программ чинь юу "бодож" байгааг мэдэхийн тулд та түүнд print()-ээр дуу хоолой өгдөг — энэ ойлголт энэ хичээлийн бүх жишээг холбож явах болно.
Хамгийн энгийн хэлбэрээс нь эхэлье:
python
print("Сайн байна уу")Энэ мөрийг ажиллуулбал terminal-д дараах бичиг гарна:
Сайн байна ууОдоо энэ мөрийг тэмдэгт бүрээр нь задалж уншъя. Эхэнд print гэдэг үг байна — энэ бол зааврын нэр, "хэвлэ" гэсэн тушаал. Бүхэлдээ жижиг үсгээр бичигдэх ёстой, яагаад гэдгийг нь алдаануудын хэсэгт нүдээр харна. Дараа нь дугуй хаалт хос ( ) байна — хаалт бол "юуг хэвлэхээ энд хийж өгнө" гэсэн саванцар юм. print-ийг хүнд юм өгдөг ажилчин гэвэл хаалт бол түүний гар: өгөх зүйлээ гарт нь тавьж өгдөг. Хаалтан дотор хашилтад хийсэн бичвэр байна: "Сайн байна уу". Хашилт яагаад хэрэгтэй вэ гэдэг бол энэ хичээлийн хамгийн чухал асуулт тул тусад нь тайлбарлая.
Хашилт бол Python-д зориулсан "энэ бол бичвэр шүү" гэсэн тэмдэглэгээ юм. Python таны мөрийг уншихдаа үг бүрийг "энэ юу вэ" гэж ангилдаг: заавар уу, тоо юу, бичвэр үү? Хашилтгүй үгийг Python ямар нэг утга бүхий зүйлийн нэр гэж ойлгохыг оролддог — тухайлбал зааврын нэр (print шиг), эсвэл хожим үзэх өөр төрлийн нэрс. Харин хашилтанд хийсэн зүйлийг Python огт "ойлгохыг" оролддоггүй: "энэ бол хүнд зориулсан бичвэр, би дотор нь юу байгааг нь хайхрахгүй, байгаагаар нь л зөөнө" гэж үздэг. Ийм хашилттай бичвэрийг программчлалд string гэдэг (англиар "утас, хэлхээ" гэсэн үг — үсгүүд утсанд хэлхсэн сувд шиг дараалдаг учраас). String бол таны танилцаж буй анхны нэр томьёо бөгөөд Бүлэг 5-д бид түүнийг гүнзгий судлах болно; одоохондоо "хашилтанд хийсэн бичвэрийг string гэдэг" гэж л мэдэхэд хангалттай. Терминалд хэвлэгдэхдээ хашилт нь хамт гардаггүйг анзаараарай: хашилт бол Python-д зориулсан тэмдэглэгээ болохоос бичвэрийн хэсэг биш учраас хүнд үзүүлэхдээ Python түүнийг авч хаядаг.
Хоёр дахь жишээ: тоо хэвлэх. print() зөвхөн бичвэр биш, тоо ч хэвлэж чадна — тэгэхдээ нэг сонирхолтой ялгаатайгаар:
python
print(5 + 3)Үр дүн:
8Анзаарсан уу — 5 + 3 гэж хэвлэгдээгүй, 8 гэж хэвлэгдлээ. Учир нь энд хашилт байхгүй. Хашилтгүй учраас Python хаалтан доторх зүйлийг "хайхрахгүй зөөх бичвэр" биш, харин ойлгож биелүүлэх зүйл гэж үзсэн: 5 нэмэх 3 бол тооцоолол, тооцоолоод хариу нь 8, тэгээд print тэр хариуг хэвлэсэн. Өөрөөр хэлбэл print() ажлаа хийхээсээ өмнө хаалтан доторх зүйл эхлээд "боловсрогддог" юм. Энэ бол жижиг мэт боловч Python-ы ажиллах зарчмын том дүрэм: хаалтан дотор тооцоолол байвал эхлээд тооцоолол хийгдэж, дараа нь үр дүн нь хэвлэгддэг.
Гурав дахь жишээ: яг өмнөх хоёрын харьцуулалт. Одоо хамгийн гэгээрүүлэгч туршилт — дээрх хоёр ойлголтыг мөргөлдүүлье:
python
print("5 + 3")
print(5 + 3)Үр дүн:
5 + 3
8Хоёр мөр бараг ижилхэн харагдаж байгаа ч үр дүн нь огт өөр. Эхний мөрөнд 5 + 3 нь хашилтанд байгаа тул Python түүнийг string буюу "байгаагаар нь зөөх бичвэр" гэж үзээд, тооцоолол хийлгүй шууд хэвлэсэн. Хоёр дахь мөрөнд хашилт байхгүй тул Python түүнийг тооцоолол гэж ойлгож, биелүүлээд хариуг хэвлэсэн. Хашилтын байгаа эсэх нь Python-ы "хандлагыг" бүхэлд нь өөрчилж байгааг харж байна уу? Энэ ялгааг одоо ойлгосон хүн Бүлэг 5-д маш том давуу талтай очих болно.
Дөрөв дэх жишээ: хэд хэдэн print дараалуулах. Бүлэг 2-ын төгсгөлд та үүнийг товч туршсан — одоо ухамсартайгаар харъя:
python
print("Өглөөний мэнд")
print("Өнөөдөр Python сурах өдөр")
print(2 + 2 + 2)Үр дүн:
Өглөөний мэнд
Өнөөдөр Python сурах өдөр
6Гурван зүйл ажиглагдана. Нэгд: мөрүүд бичсэн дарааллаараа, дээрээс доош биелэгдсэн — энэ бол Бүлэг 1-д ярьсан "заавар дарааллаараа биелдэг" зарчим бөгөөд бид үүнийг энэ бүлгийн гуравдугаар хичээлд гүнзгий үзнэ. Хоёрт: print() бүр өөрийн гэсэн шинэ мөрөнд хэвлэдэг — гурван print гурван тусдаа мөр үүсгэсэн, нэг мөрөнд наалдаагүй. Гуравт: string болон тооны хэвлэлт нэг программ дотор чөлөөтэй хоршиж болно.
Хүсвэл эдгээр жишээг hello.py файл дээрээ (эсвэл Programiz дээр) туршаад үзээрэй: хашилттай, хашилтгүй хувилбаруудыг сольж бичээд үр дүнг нь харьцуулах нь энэ хичээлийн гол санааг гарт чинь буулгах хамгийн сайн арга. Мөн сонирхвол өөр тооцоолол хийлгэж үзээрэй — хасах нь -, үржүүлэх нь * (одтой тэмдэг) байдаг; тооны үйлдлүүдийн бүрэн хичээл Бүлэг 5-д бий.
Одоо энэ сургалтын амласан ёсоор, print()-тэй ажиллахад тохиолддог гурван хамгийн түгээмэл алдааг зориуд гаргаж, Python-ы хэлдэг үгийг нь уншиж сурцгаая. Эдгээрийг та гарцаагүй хэзээ нэгэн цагт гаргана — тэр үед энэ хэсэг таны танил газар болно.
Алдаа 1: Хашилтаа мартах. Бичвэрээ хашилтгүй бичвэл юу болох вэ:
python
print(Сайн)Python дараах хариу өгнө:
NameError: name 'Сайн' is not definedОрчуулбал: "NameError (нэрийн алдаа): 'Сайн' гэдэг нэр тодорхойлогдоогүй байна." Юу болсон бэ гэвэл: хашилт байхгүй учраас Python "Сайн" гэдгийг бичвэр гэж үзээгүй, харин ямар нэг нэр гэж ойлгоод, тийм нэртэй зүйл байгаа эсэхийг хайсан — олоогүй тул "ийм нэрийг би танихгүй байна" гэж хэлж байгаа юм. Засвар нь: бичвэрээ хашилтанд хийнэ — print("Сайн").
Алдаа 2: Хашилтаа хаахаа мартах. Нээсэн хашилтаа хаагаагүй бол:
python
print("Сайн байна уу)Python:
SyntaxError: unterminated string literal (detected at line 1)Орчуулбал: "SyntaxError (бичиглэлийн алдаа): төгсгөлгүй string байна (1-р мөрөнд илэрсэн)." Syntax гэдэг нь хэлний бичиглэлийн дүрэм гэсэн үг бөгөөд SyntaxError бол "таны бичсэн зүйл Python хэлний дүрэмд нийцэхгүй тул би уншиж ч чадсангүй" гэсэн утгатай. Энд Python нээлттэй хашилт олоод, хаалтыг нь мөрийн төгсгөл хүртэл хайгаад олоогүй учраас string хаана дуусахыг мэдэхгүй гацсан хэрэг. Мэдэгдэлд байгаа "line 1" нь алдаа хэдэн дэх мөрөнд байгааг зааж өгдөг — том программд энэ тоо алдааг хайх газрыг чинь хэлж өгдөг үнэтэй мэдээлэл юм. Засвар нь: хашилтын хосыг гүйцээнэ.
Алдаа 3: Том үсгээр эхлүүлэх. print-ийг Print гэж бичвэл:
python
Print("Сайн байна уу")Python:
NameError: name 'Print' is not defined. Did you mean: 'print'?Орчуулбал: "'Print' гэдэг нэр тодорхойлогдоогүй байна. Та 'print' гэх гэсэн юм болов уу?" Python-ы хувьд том, жижиг үсэг бол огт өөр тэмдэгтүүд тул Print, print, PRINT гурав нь гурван өөр нэр юм. Python зөвхөн жижиг үсгийн print-ийг л таньдаг. Энэ алдаанд нэг сайхан зүйл нуугдаж байгааг анзаараарай: Python "Did you mean: 'print'?" гэж өөрөө зөв хувилбарыг санал болгож байна. Орчин үеийн Python алдааны мэдэгдэлдээ ийм тусламж хавсаргадаг болсон — алдааны мэдэгдэл таны дайсан биш, туслах гэж оролддог гэдгийн бас нэг нотолгоо энэ. Мөн хаалтаа хаахаа мартвал (print("Сайн байна уу" гээд орхивол) SyntaxError: '(' was never closed буюу "хаалт хэзээ ч хаагдаагүй" гэсэн мэдэгдэл гардаг — логик нь хашилтын алдаатай ижил.
Гурван алдааг нэгтгээд харвал нэг зүй тогтол харагдана: NameError бол "энэ нэрийг танихгүй байна", SyntaxError бол "бичиглэл дүрэмд нийцэхгүй тул уншиж чадсангүй". Энэ хоёр нэр танд ойрын хичээлүүдэд дахин дахин таарах тул нүүр тахалцаад авсан нь дээр. Хүсвэл эдгээр алдааг зориуд гаргаад үзээрэй — аюулгүй орчинд алдааг зориуд гаргаж, мэдэгдлийг нь уншиж дасах нь "алдаанаас айдаггүй программист" болох хамгийн шууд зам юм.
print() бол "энэ зүйлийг дэлгэц дээр харуул" гэсэн заавар — программын дуу хоолой нь юм.
Хэвлэх зүйлээ дугуй хаалтан дотор өгнө; хашилттай зүйл (string) байгаагаар нь хэвлэгдэнэ, хашилтгүй тооцоолол эхлээд бодогдоод үр дүн нь хэвлэгдэнэ.
print() бүр өөрийн шинэ мөрөнд хэвлэдэг бөгөөд мөрүүд бичсэн дарааллаараа биелдэг.
Хашилт мартвал NameError, хашилт-хаалтаа хаахгүй бол SyntaxError, Print гэж том үсгээр бичвэл NameError гардаг — гурвуулаа бичилтийг нягталснаар засагддаг.
Алдааны мэдэгдэл дэх мөрийн дугаар (line 1) болон "Did you mean" санал нь таны туслахууд юм.
Дараагийн хичээлд бид кодын дотор өөртөө зориулж тэмдэглэл үлдээдэг comment гэдэг зүйлтэй танилцана — Python-ы "үл уншдаг" мөрүүд гэж юу байдгийг, программистууд яагаад тэдгээрийг маш их бичдэгийг үзнэ.
Бүртгэлтэй болсноор энэ сургалтын бүх хичээлд хандах эрх авна.