Ачааллж байна...
Өмнөх хичээлд та хайрцаг үүсгэж, дотор нь утга хийж, нэрээр нь дуудаж сурсан. Тэнд бид ner, nas, hool гэх мэт нэрсийг "зүгээр л" хэрэглэсэн — тэдгээр нэрс яагаад ажилласан, өөр ямар нэрс болох, ямар нь болохгүй тухай ярилгүй өнгөрсөн. Энэ хичээлд бид яг тэр асуултад бүрэн хариулна: хайрцагныхаа шошгон дээр юу бичиж болох вэ? Энэ бол хоёр давхар сэдэв юм. Нэг талд Python-ы хатуу дүрмүүд бий — зөрчвөл программ огт ажиллахгүй, SyntaxError өгдөг зүйлс. Нөгөө талд программистуудын сайн дадлууд бий — зөрчвөл алдаа гарахгүй ч, кодыг тань уншихад хэцүү болгодог зүйлс. Бид эхлээд хатуу дүрмүүдийг, дараа нь дадлуудыг үзнэ.
Нэр өгөх нь яагаад тусдаа бүтэн хичээл эзлэх хэмжээний сэдэв вэ гэдгийг эхлээд хэлье. Таны программ томрох тусам доторх variable-ийн тоо өснө: эхэндээ гурав, дөрөв байсан бол жинхэнэ программд хэдэн арав, хэдэн зуу болдог. Тэр үед variable-ийн нэрс бол таны программын "газрын зураг" болж хувирдаг — нэрс нь ойлгомжтой байвал код өөрөө өөрийгөө тайлбарлаад явдаг, нэрс нь замбараагүй байвал өөрийн чинь бичсэн код өөрт чинь оньсого болдог. Comment-ийн хичээлд ярьсан "гурван долоо хоногийн дараах өөрдөө" зориулсан хамгийн том бэлэг бол үнэндээ сайн comment ч биш — сайн нэрс юм.
Хайрцагны зүйрлэлээ үргэлжлүүлье. Таны агуулахын ажилтан (Python) шошго уншихдаа туйлын нарийн дэг журамтай: тэрээр тодорхой дүрмээр бичигдсэн шошгыг л хүлээж авдаг. Яагаад гэвэл түүний ажил шошгыг андуурашгүй олж унших явдал — хэрэв шошгон дээр зай, тусгай тэмдэг, эргэлзээтэй бичиглэл байвал тэр "энэ хоёр үг нэг шошго юу, хоёр шошго юу" гэдгийг ялгаж чадахгүй болно. Тиймээс агуулахын үүдэнд "шошгоны журам" гэсэн самбар өлгөөтэй: юуг зөвшөөрөх, юуг буцаахаа ажилтан тэндээс хардаг. Энэ хичээл бол яг тэр самбарыг уншиж сурах хичээл юм. Журмын цаана логик бий гэдгийг харах болно: дүрэм бүр нь ажилтныг андуурлаас хамгаалах гэсэн зорилготой.
Python-д variable-ийн нэр дараах дөрвөн дүрмийг дагах ёстой. Нэг бүрчлэн, жишээтэй нь үзье.
Дүрэм 1: Нэр зөвхөн үсэг, тоо, доогуур зураас (_) гурваас бүрдэнэ. Зай авах, зураас (-), цэг, асуултын тэмдэг гэх мэт бусад бүх тэмдэгт хориотой. Зөв жишээнүүд: ner, nas2, mongon_dun. Доогуур зураас гэдэг нь гар дээр Shift + хасах товчоор бичигддэг _ тэмдэг бөгөөд яагаад чухал болохыг Дүрэм 4-ийн дараа харна.
Дүрэм 2: Нэр тоогоор эхэлж болохгүй. Тоо нэрийн дотор байж болно, харин эхэнд нь байж болохгүй: nas2 болно, 2nas болохгүй. Яагаад гэвэл Python мөр уншиж эхлэхдээ "тоогоор эхэлсэн зүйл бол тоо" гэсэн хатуу таамагтай явдаг — 2nas гэдгийг хараад "2 гэсэн тоо байна, гэтэл ард нь үсэг наалдчихсан юу вэ энэ" гэж гацдаг юм.
Дүрэм 3: Python-ы өөрийнх нь "нөөцөлсөн" үгсийг нэр болгож болохгүй. Python хэл дотроо тусгай утгатай, цөөн хэдэн арван үгтэй — жишээ нь if, for, while, class гэх мэт. Эдгээрийг та хараахан мэдэхгүй ч удахгүй хичээл дараалан танилцах бөгөөд тэр болгонд "энэ үг нөөцөлсөн үг тул variable-ийн нэр болохгүй" гэдгийг давхар ойлгоод явна. Одоохондоо санах зүйл ганцхан: хэрэв нэр өгөхөд тань гэнэт ойлгомжгүй SyntaxError гарвал "энэ үг Python-ы өөрийнх нь үг байж магадгүй" гэсэн сэжиг нэг хувилбар байх ёстой. VS Code энд бас тусалдаг: нөөцөлсөн үгсийг эдитор тусгай өнгөөр буддаг тул таны бичсэн "нэр" гэнэт print-тэй ижил өнгөөр гялалзвал энэ нь дохио юм.
Дүрэм 4: Том, жижиг үсэг ялгаатай. Үүнийг print-ийн хичээлээс та аль хэдийн мэднэ: Python-ы хувьд Ner, ner, NER гурав нь гурван тусдаа нэр юм. Энэ нь гурван өөр хайрцаг зэрэг үүсгэж болно гэсэн үг бөгөөд яг эндээс эхлэгчдийн нэг зальтай алдаа төрдөг — доор алдаануудын хэсэгт бид түүнтэй нүүр тулна.
Харин нэг зүйл таныг гайхшруулж магадгүй: кирилл үсгээр нэр өгөх нь Python-ы дүрмээр болдог. нэр = "Бат" гэж бичихэд орчин үеийн Python алдаа өгөхгүй. Гэхдээ энэ сургалт, мөн дэлхийн программистуудын нийтлэг дадал нь нэрийг латинаар бичихийг зөвлөдөг. Шалтгаан нь практик: программчлалын ертөнцийн бүх материал, бүх жишээ, бүх алдааны мэдэгдэл латин орчинд амьдардаг тул кодын дундах кирилл нэрс нь гар солих ажиллагаа нэмдэг, бусадтай код хуваалцахад саад болдог, зарим хуучин хэрэгсэл дээр гэнэтийн асуудал үүсгэдэг. Бидний дадал: нэрс латинаар, хүнд зориулсан бичвэрүүд (string болон comment) монголоор. Таны өмнөх хичээлүүдэд харсан ner, nas, hool нэрс яг энэ дадлыг дагаж явсан юм.
Дүрмүүдийг зөрчөөд Python-ы хариуг сонсоцгооё. Хамгийн түгээмэл зөрчил — нэрэнд зай авах:
python
minii nas = 12Python:
SyntaxError: invalid syntax. Perhaps you forgot a comma?Орчуулбал: "SyntaxError: буруу бичиглэл. Магадгүй та таслал мартсан уу?" Энэ мэдэгдлийг задалж уншъя, учир нь энд нэг чухал сургамж бий: Python таны санааг мэддэггүй. Та "minii nas гэсэн нэг нэр" гэж бодож бичсэн ч, Python зайг хараад "minii гэсэн нэг зүйл, nas гэсэн өөр нэг зүйл — хоёр тусдаа зүйл зэрэгцчихсэн юу вэ?" гэж ойлгосон. Тиймээс түүний саналууд ("таслал мартсан уу?") таны жинхэнэ алдааг заагаагүй — тэр таны бодлыг биш, бичсэн тэмдэгтүүдийг л хардаг учраас өөрийнхөө таамгийг хэлсэн хэрэг. Эндээс дүрэм: SyntaxError-ын "Perhaps..." санал үргэлж оносон байдаггүй, тэр бол таамаг — гол баримт нь "энэ мөрийн бичиглэл дүрэм зөрчсөн" гэдэг нь юм. Засвар нь Дүрэм 1-ийн доогуур зураас: minii_nas = 12. Доогуур зураас бол "зайны орлогч" — олон үгтэй нэрийг нэг шошго болгож "оёдог" утас юм. Программистууд ийм бичиглэлийг snake_case ("могой маягийн бичиглэл" — үгс доогуур зураасаар могой шиг холбогддог учраас) гэж нэрлэдэг бөгөөд энэ бол Python ертөнцийн нийтлэг хэв маяг юм.
Хоёр дахь жишээ: тоогоор эхэлсэн нэр. Дүрэм 2-ыг зөрчье:
python
1r_bair = "Тэмүүжин"Python:
SyntaxError: invalid decimal literalОрчуулбал: "буруу тооны бичиглэл." Мэдэгдэл нь "нэрийн алдаа" биш "тооны алдаа" тухай ярьж байгааг анзаараарай — яагаад гэвэл дээр хэлсэнчлэн Python 1-ийг хараад "тоо эхэллээ" гэж үзсэн бөгөөд ард нь r үсэг наалдсаныг "эвдэрхий тоо" гэж ойлгосон юм. Таны бодож байснаас тэс өөр өнцгийн гомдол — гэхдээ одоо та шалтгааныг нь мэднэ. Засвар: нэрээ үсгээр эхлүүлнэ — bair_1 эсвэл negdugeer_bair.
Гурав дахь жишээ: зөв нэрсийн жагсаалт. Дүрмээ эзэмшсэн эсэхээ шалгах хамгийн сайн арга — зөв, буруугийн зэрэгцүүлсэн жагсаалт. Дараах нэрс бүгд зөв:
python
ner = "Бат"
nas_2026 = 13
minii_durtai_hool = "Бууз"
_tusgai = "болно, гэхдээ ховор хэрэглэдэг"Дөрвүүл дүрэмд нийцэж байна: үсэг-тоо-доогуур зураасаас бүрдсэн, тоогоор эхлээгүй. (Сүүлийн жишээ шиг доогуур зураасаар эхэлсэн нэр дүрмийн хувьд зөв боловч Python ертөнцөд тусгай "далд утга" үүрдэг заншилтай тул эхлэгч хүн нэрээ үсгээр эхлүүлж байх нь дээр.) Харин дараах нэрс бүгд буруу бөгөөд аль дүрмийг зөрчсөнийг нь та өөрөө хэлж чадах байх: minii nas (зай — Дүрэм 1), 5tugrug (тоогоор эхэлсэн — Дүрэм 2), hool-nii-une (зураас бол хасах тэмдэг тул Дүрэм 1 зөрчинө — Python үүнийг hool хасах nii хасах une гэсэн тооцоолол гэж уншина!).
Дөрөв дэх жишээ: сайн нэр ба "ажилладаг ч муу" нэр. Одоо дүрмээс дадал руу шилжье. Дараах хоёр программ яг ижил ажиллана:
python
a = 5000
b = 1500
print(a - b)python
tugrug = 5000
uneh = 1500
print(tugrug - uneh)Хоёул 3500 гэж хэвлэнэ, Python-ы хувьд ямар ч ялгаагүй. Гэхдээ хоёр долоо хоногийн дараа эргэж ирээд уншихад: эхний программын a, b гэж юу байсныг та санахгүй — "a гэж юу билээ? мөнгө үү? нас уу? оноо юу?" гэсэн оньсого угтана. Хоёр дахь программ өөрөө өөрийгөө тайлбарлаж байна: төгрөгөөс үнийг хасаж байгаа нь нэрснээс нь шууд харагдана. Дүрэм болгож аваарай: нэр нь хайрцагны доторхыг хэлж өгдөг байх ёстой. Нэг үсэгтэй нэрс бичихэд хурдан боловч уншихад удаан — харин код нэг л удаа бичигдээд олон удаа уншигддаг тул энэ наймаа үргэлж алдагдалтай юм.
Хүсвэл туршаад үзээрэй: өмнөх хичээлийн өөрийн бичсэн variable-уудынхаа нэрсийг энэ хичээлийн нүдээр дахин хараарай — дүрэм зөрчсөн нь бий юу, "ажилладаг ч муу" нэр бий юу? Сонирхвол зориуд нэг нэрэнд зай аваад, нэг нэрийг тоогоор эхлүүлээд, хоёр өөр SyntaxError-ыг нүдээрээ үзээрэй — аюулгүй орчинд алдаатай нүүр тахалцах дадлаа үргэлжлүүлцгээе.
Алдаа 1: Том, жижиг үсгээр өөрийгөө хуурах. Энэ бүлгийн хамгийн зальтай алдаа — учир нь SyntaxError өгдөггүй:
python
Ner = "Бат"
print(ner)Python:
NameError: name 'ner' is not defined. Did you mean: 'Ner'?Орчуулбал: "'ner' гэдэг нэр тодорхойлогдоогүй. Та 'Ner' гэх гэсэн юм болов уу?" Юу болсон бэ: та Ner (том үсгээр) нэртэй хайрцаг үүсгэчихээд, ner (жижиг үсгээр) нэртэй хайрцаг дуудсан — Дүрэм 4 ёсоор энэ хоёр өөр нэрс тул Python жижиг үсгийн ner-ийг олоогүй. Азаар орчин үеийн Python "Did you mean" саналдаа зөв хувилбарыг чинь оночихож — энэ удаад таамаг нь оносон байна. Хамгаалах дадал: нэрээ үргэлж бүгдийг жижиг үсгээр бич — snake_case дадлын нэг давуу тал нь яг энэ: том үсэг огт хэрэглэхгүй бол том-жижгийн андуурал зарчмын хувьд гарах боломжгүй болдог.
Алдаа 2: Нэрээ өөр газар өөр бичих. Өмнөхтэй ижил төрлийн, гэхдээ үсгийн алдаанаас үүддэг хувилбар:
python
mongon_dun = 25000
print(mongon_dvn)Python:
NameError: name 'mongon_dvn' is not defined. Did you mean: 'mongon_dun'?Нэг үсгийн зөрүү (u ба v) — хоёр өөр нэр. Урт нэрс утга сайтай ч бичихдээ алдах магадлал нь өндөр байдгийг энэ жишээ харуулж байна. Хамгаалалт хоёр давхар: нэгд, VS Code-ын санал болгох жагсаалтыг ашиглаарай — нэрийн эхний хэдэн үсгийг бичихэд эдитор өмнө нь хэрэглэсэн нэрсийг тань санал болгодог бөгөөд жагсаалтаас сонговол үсгийн алдаа гарах боломжгүй; хоёрт, NameError гарвал хамгийн түрүүнд "хоёр газрын бичиглэл минь үсэг бүрээрээ таарч байна уу" гэж нүдээрээ тулгаж шалгаарай.
Алдаа 3: print-ийг variable-ийн нэр болгох. Дүрэм 3-ын нэг онцгой, урьдчилан сануулууштай тохиолдол. print бол нөөцөлсөн үг биш тул үүнийг нэр болгоход SyntaxError гардаггүй — гэхдээ юу болохыг хараарай:
python
print = "Миний бичвэр"
print("Сайн байна уу")Python:
TypeError: 'str' object is not callableШинэ төрлийн алдаа — TypeError (төрлийн алдаа). Бүрэн тайлбар нь Бүлэг 5-д бий, гэхдээ болсон явдлын мөн чанар нь сургамжтай: эхний мөрөөр та print гэдэг нэрэн дээр string наачихлаа — Python-ы "хэвлэгч ажилтны" нэрийг хайрцагны шошго болгож дарж бичсэн гэсэн үг. Хоёр дахь мөрөнд Python print-ийг дуудахад тэнд хэвлэгч ажилтан байхгүй, string л байсан тул "string-ийг ажиллуулж болдоггүй шүү дээ" гэж гомдоллоо. Сургамж: Python-ы мэддэг нэрсийг (print гэх мэт) хэзээ ч variable-ийн нэр болгож болохгүй — дүрэм зөвшөөрсөн ч, ингэснээр та Python-ы өөрийнх нь багажийг эвддэг. Ийм зүйл санамсаргүй тохиолдвол засвар нь энгийн: тэр мөрөө өөр нэртэй болгоод программаа дахин ажиллуулна (Run дарах бүрд программ цэвэр эхэлдэг тул "эвдрэл" нь тухайн ажиллагаанд л үйлчилдэг, компьютерт чинь юу ч болоогүй).
Нэр зөвхөн үсэг, тоо, доогуур зураасаас бүрдэнэ; тоогоор эхэлж болохгүй; Python-ы нөөцөлсөн болон мэддэг үгсийг нэр болгохгүй.
Олон үгтэй нэрийг доогуур зураасаар холбож snake_case маягаар бичдэг: minii_nas, mongon_dun.
Том, жижиг үсэг өөр нэрс үүсгэдэг тул нэрээ үргэлж бүгдийг жижиг үсгээр бичих дадал таныг бүхэл бүтэн ангиллын алдаанаас хамгаална.
Нэрс латинаар, string болон comment монголоор — энэ сургалтын тогтсон дадал.
Сайн нэр хайрцагны доторхыг хэлж өгдөг: a биш tugrug — код нэг бичигдээд олон уншигддаг тул уншигдах чанарт хөрөнгө оруул.
Дараагийн хичээлд бид variable гэдэг үгийн жинхэнэ утга руу орно: хайрцагны доторх утгыг солих. Нэг хайрцганд шинэ юм хийхэд хуучин нь хаачдаг, score = score + 1 гэсэн "өөрөө өөртэйгөө тэнцэхгүй" харагддаг оньсого мөр яагаад Python-ы хамгийн хэрэгтэй мөрүүдийн нэг байдгийг тэнд тайлна.
Бүртгэлтэй болсноор энэ сургалтын бүх хичээлд хандах эрх авна.