Мөр ба байт

Мөрийн талаар тодорхой ойлголттой болсон тул Өгөгдлийн төрлүүд хичээлд үзээгүй Python -ий байт гэдэг төрлийн тухай авч үзье. Мөрүүд янз бүрийн тэмдэгтийн кодоор илэрхийлэгдэж болох талаар өмнө нь дурдаж байсан. Ямарч өгөгдлүүд компьютерт эцсийн дүндээ хоёртын системийн 0, 1 цифрүүдээр илэрхийлэгддэг. Иймээс мөрийг бүрдүүлдэг компьютерийн тэмдэгт бүрд кодийн системийн хүснэгтэд тоон кодийг олгосон байдаг. Кодийн хүснэгтүүд олон ч тодорхой стандартуудад хуваагддаг. Кодийн системүүд нэг тэмдэгтийг янз бүрийн уртаар буюу байтаар тодорхойлдог. Жишээ нь тэмдэгтийн ascii системийн хүснэгтэд тэмдэгтийг 7 битээр илэрхийлэх бөгөөд нийтдээ 128 тэмдэгтийг тодорхойлдог.

Өргөтгөсөн ascii системд 8 дахь нэмэлт битийг ашигласнаар /нэг тэмдэгтэд 1 байт/ 256 тэмдэгтийг тодорхойлдог. UTF-8, Unicode, UTF-16, UTF-32 гэх мэтийн системүүд бий. Эдгээрээс UTF-8 хамгийн өргөн ашиглагддаг кодчлолын хүснэгт. UTF-8 -д тэмдэгтүүдийг 1-4 байтаар тодорхойлдог. UTF-8 нь Unicode хүснэгтийн дэд хүснэгтэд ордог. Анхдагчаар Python3 бүх тэмдэгтүүдийг Unicode стандартаар кодлогддог тул мөртэй ажиллах ажиллагааг ихээхэн хөнгөвчилж өгсөн. Учир нь Unicode системийн хүснэгт бараг бүхий л тэмдэгтүүдийг илэрхийлж болдог. Хэрэглэгчийн компьютерийн кодчлолын хүснэгтүүд ялгаатай байж болох ч Windows орчны кирилл үсэгтэй хэрэглэгчдийн кодчлолын хүснэгтүүд бараг л UTF-8 байдаг. Ер нь програмийн кодод мөрүүдтэй ажиллаж байхдаа ихэнх тохиолдолд кодчлолын хүснэгтийг бараг анзаарахгүй. Таны мэдэж байх зүйл бол өгөгдлүүд ямар кодчлолын хүснэгтээр хадгалагдсанг мэдэн тэдгээртэй ажиллахдаа тохирох сиситемийг хэрэглэх юм.
Unicode тэмдэгтүүдийн хүснэгтийн сайтад хандан илүү дэлгэрэнгүй мэдээллийг авч болно.
Тэмдэгтийн хүснэгтүүдтэй ажиллахыг жишээгээр авч үзье. Jupyter Notebook орчинд доорх

командыг өгөөд Shift & Enter дарвал utf-8 гэсэн мөрийг авна. Энэ бол таны компьютер ямар тэмдэгтийн хүснэгтийг ашиглаж байгааг үзүүлсэн хэрэг. Систем ямар тэмдэгтийн хүснэгтийг ашиглаж байгааг мэдэхийн тулд import sys командаар sys санг импортлоод түүний getdefaultencoding функцийг дуудсан. Сан импортлох талаар тусдаа хичээлээр үзэх тул одоо дээрх жишээг дагаад явахад болно. utf-8 бол Unicode тэмдэгтүүдийн 8 бит хэлбэрийн тэмдэглэгээ юм. 128 -аас доош кодтой тэмдэгтүүд 1 байтаар тодорхойлогдоно. 128 -аас доош кодтой тэмдэгтүүд Unicode системд ascii системтэй ижил. Харин 128 - аас дээш кодтой тэмдэгтүүд кодын хэмжээнээсээ хамааран 2, 3, 4  байтаар кодлогдоно. Тэмдэгтүүдийн хүснэгтийн кодчлол нилээд нарийн тул Python -ий хичээлд түүнийг гүнзгийрүүлэн судлаад байх шаардлагагүй. Тэмдэгтийн кодийг авахдаа ord харин тэмдэгтийг кодоор нь гаргахдаа chr функцуудийг ашиглахыг

дээрх жишээгээр харууллаа. Жишээ нь латин a үсэг 97 кодтой. 97 кодоор a үсгийг авч болохыг харуулсаан. Тэмдэгт бүр өөрийн кодтой тул A үсэг өөр кодтой гэдгийг санаарай. Хэрвээ chr(202) гэвэл түүнд тохирох тэмдэгтийг харуулах жишээний. Unicode систем тэмдэгтийн код 1-4 байтаар тодорхойлогдох тул маш олон тооны тэмдэгтүүдийг агуулна.
Хичээлийн зорилго бол мөрийг тэмдэгтэн хэлбэрээс байт хэлбэрт, байт хэлбэрийн мөрийг тэмдэгтэнд хэлбэрт шилжүүлэх аргуудыг ойлгох. Энд л тэмдэгтийн кодийн системийг ашигладаг. Одоо тодорхой жишээг харцгаая.

Жишээнд s = "hello" мөрийг түүний encode аргаар байтад /row bytes гэж нэрлэдэг/ хөрвүүлэн хувьсагчид хадгалсан. encode аргад кодлолын хүснэгтийг нэрийг дамжуулах ёстой. Мөрийг байтад шилжүүлээд хувьсагчдын төрлийг аль нэг хувьсагчийн төрлийг үзүүлэн шалгавал bytes гэдгийг үзүүлнэ. Хувьсагчдыг print камандаар харуулбал мөрийн байтад шилжсэн хэлбэрийг үзүүлнэ. Жишээ нь b'hello'. Мөрийн өмнөх b нь мөр байт төрлийнх гэдгийг заана. 3-р нүдэнд "hello" мөрийн байтын хэлбэр хэчнээн байт урттайг харуулах команд юм. Үр дүнгээс ascii, utf8 -д тэмдэгт бүрийг 1 байтаар харин utf16"hello" мөрийг 12 байтад хадгалсан байгаа нь харагдана. Ер нь utf16 -д тэмдэгтийг 2 байтад хадгалдаг ч энд яагаад 12 байт хадгалсан учрыг тэмдэгтийн хүснэгтийн талаар судлан өөрөө тогтоогоорой.
Python -д кодчлолын хүснэгт өгөгдлийг сүлжээгээр эсхүл файлаар гэх мэтээр дамжуулах үед л чухал байдаг. Өгөгдөл компьютерийн санах ойд байхад Python өгөгдлийг Unicode тэмдэгтүүдийн дараалал гэж үздэг тул encoding буюу кодчлол ойлголт ер нь байхгүй гэсэнтэй ижил.
Мөрийг байт хэлбэрт шилжүүлэх жишээнүүдийг

харцгаая. 1-р нүдний эхний командаар hello мөрийг байт хэлбэрт шилжүүлэхдээ b угтварыг тавиад мөрийг өгнө. Ингэснээр str_in_bytes хувьсагчид hello мөр байт хэлбэрээр хадгалагдана. Хоёрдахь команд str_in_text хувьсагчид hello мөрийг олгож байгаа. Энэ нь хувьсагчдын төрлийг үзүүлэх print командаар батлагдана. Үүнээс гадна мөрөөс encode аргыг шууд дуудсан ч болно. 2 -р нүдний жишээ. Кирил эсхүл ханз гэх мэт үсэгтэй мөрийг ч байтад хөрвүүлж болно. Мөрийн байт хэлбэрт индексээр нь хандах боломжтойг 3-р нүдний эхний жишээ харуулна. Хоёрдахь жишээг бид өмнөх хичээлээс мэднэ. str_in_bytes хувьсагчид мөр байтаар хадгалагдаж байгаа тул мөрийн 0 индекст h -ийн тэмдэгтийн хүснэгтийн код агуулагдана.

Зурагт үзүүлсэн кодийг авч үзье. byte төрөл str төрлийн адилаар өөрчлөлт авдаггүй гэдгийг ойлгох нь чухал. Жишээ нь 1-р нүдний жишээнд str_in_bytes хувьсагчид hello мөрийг байтаар хадгалаад түүний 0 индекстэй байтыг өөрчлөх гэвэл алдаа өгнө. Энэ бол byte төрөл өөрчлөлт авдаггүйг батлана. Хэрвээ өөрчлөгддөг byte төрөл хэрэгтэй бол Python -ий bytearray функцийг ашиглан өөрчлөх боломжтой байт төрлийг үүсгэж болно. 2-р нүдний жишээнд ba хувьсагчид hello мөрийг байтаар олгоод түүнийг индексээр нь өөрчилж байгаа жишээг харууллаа. Ямарч тохиолдолд байтыг str -ийн байгуулагчийг ашиглан мөр рүү буцаан хөрвүүлэх хэрэггүй. Хөрвүүлэхдээ хүрвэл кодчлолын хүснэгтийг заавал заах хэрэгтэйг 3, 4 -р нүдний жишээнүүд харуулна. 3-р нүдний result=str(str_in_bytes) командаар байт төрлийн хувьсагчийг мөр төрөлд хөрвүүлэн hello утгыг авах ёстой мэт. Гэтэл дараагийн хоёр print командын үр дүн b'hello' , 8 гэсэн утгыг өгсөн байгаа. Учир нь str -ийн байгуулагч түүнд дамжуулсан байт төрлийн str_in_bytes хувьсагчийн утгыг шууд мөр төрлийнх болгосон учраас b'hello' , 8 гэсэн утгуудыг буцааж байгаа юм. 8 бол result мөрийн урт. str -ийн байгуулагчаас зөв хэлбэрийн мөрийг авахын тулд 4-р нүдний жишээ шиг байт төрөл ямар кодчлолын хүснэгтийг ашиглаж байгааг заах хэрэгтэй. Манай тохиолдолд utf8. Кодчлолын хүснэгтүүд өөр хоорондоо бүгд тохироод байдаггүй тул хөрвүүлэлтэд нэг ижил кодчлолын хүснэгтийг ашиглахыг зөвлөе. Хөрвүүлэлтэд decode аргыг ч шашиглах боломжтойг 5-р нүдний жишээнд харууллаа. Жишээ нь байт төрлийн str_in_bytes хувьсагчийн decode аргад кодчлолын хүснэгтийн нэрийг дамжуулан дуудвал байтыг мөр рүү зөв хөрвүүлнэ. decode аргад кодчлолын хүснэгтийг заавал дамжуулах ёстой.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 228 Төлбөртэй

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

  Нээгдсэн тоо: 849 Төлбөртэй

Декоратор ухагдхууныг ойлгон ашиглаж сурахын тулд python -ий функц ухагдхууныг нарийн ойлгосон байх хэрэгтэй. python -ий функцууд бүрэн хэмжээний обьектыг төлөөлдөг тул функц функцийг буцаах, функцийг функцэд параметр хэлбэрээр дамжуулах боломжтой гэсэн үг. Програмчлалын хэлд суралцаж буй хүмүүст энэ нь ойлгомж муутай байж болох тул энгийн жишээнүүдээс эхлэе.

  Нээгдсэн тоо: 610 Нийтийн

Python хэл олон төрлийн програмчлалын арагчлалыг дэмждэг. Өнөө үед маш өргөн дэлгэрсэн ОХП аргачлалыг Python -д маш энгийн, ойлгомжтой байдлаар оруулан ирсэн. Хичээлээр классийн шинж, аргууд гэж юу болохыг тоглоомын баатрын жишээгээр авч үзье.

  Нээгдсэн тоо: 455 Төлбөртэй

Програмын боловруулалтад нэгдсэн /unit/ тест гэдэг ойлголт бий. Нэгдсэн тест нь алдааг гарсны дараа нь засварлах биш түүнийг програмын бүтээгдхүүний кодоос эрт илрүүлэн засварлахад чиглэсэн ажиллагаа юм. Нэгдсэн тест програмийн бүтээгдхүүн хувилбарыг гаргахаас өмнө кодод нэгдсэн тестийг бичэн бүтээгдхүүний код зөв ажиллаж байгааг шалган алдаа байвал түүнийг илрүүлэн засварлах зорилготой. Ингэснээр програмийн бүтээгдхүүн ашиглалтад шилжихийн өмнө гарч болох алдаануудыг олон засварлах боломжийг бүрдүүлдэгээрээ давуу талтай.

Класс ба структурт ердийн талбар, арга, шинжүүдээс гадна статик талбар, арга, шинжүүд байж болдог. Статик талбар, арга, шинжүүд…

Нээгдсэн тоо : 150

 

Хичээлээр useState -тэй тун төстэй useRef хукийн талаар авч үзье. useRef хукийн онцлог ашиглалтыг компонент хэдэн удаа дахин…

Нээгдсэн тоо : 123

 

Хүүхдүүд тооны хичээлийг анхнаасаа зөв ойлгон сураагүйгээс анги ахих тусмаа математикийн хичээлийнн хоцрогдолоос болоод дургүй болох тал байдаг.…

Нээгдсэн тоо : 312

 

Нийтлэлээр графикийн хэвүүдийн /GUI pattern/ түүхийг авч үзье. Боловсруулалтын графикийн хэвүүдийг 30 гаруй жилийн туршид боловсруулж байгаа бөгөөд…

Нээгдсэн тоо : 167

 

Хааяа өөр өөр параметрүүдийн багцтай нэг аргыг үүсгэх шаардлага гардаг. Ирсэн параметрүүдээс хамааран аргын тодорхой хэрэгжүүлэлтийг хэрэглэнэ. Ийм…

Нээгдсэн тоо : 196

 

Ямарч програмын ажиллагааны чухал хэсэг бол төрөл бүрийн мэдээллийн боловсруулалт, тэдгээртэй ажиллахтай холбоотой байдаг. Иймээс энэ хичээлээс vuejs

Нээгдсэн тоо : 139

 

Хичээлээр react -ийн хукуудаас их өргөн ашиглагддаг useEffect -ийн талаар авч үзье. useEffect -ийн ажиллагааг судлах хуудасны кодийг

Нээгдсэн тоо : 138

 

Илэрхийлэл бол математикийн хэлний үндэс болсон суурь ойлголтуудын нэг. Математикийн илэрхийллийг тооцооны алгоритм, аксиом, теорем, бодлогын нөхцлүүд гээд…

Нээгдсэн тоо : 264

 

Програм зохиох бол нарийн төвөгтэй ажил. Ямар ч програмын хувьд өөрийн хийх ажлаа гүйцэтгэхийн чацуу цаашдаа хөгжих, ажлын…

Нээгдсэн тоо : 189

 
Энэ долоо хоногт

тэгшитгэлийг бод.

Нээгдсэн тоо : 1140

 

хязгаарыг бодоорой.

Нээгдсэн тоо : 720

 

Ангийн нийт сурагчдын 60% нь эмэгтэй сурагчид байдаг. Ангиас санамсаргүйгээр нэг сурагч сонгоход эрэгтэй сурагч байх магадлалыг ол.

Нээгдсэн тоо : 1124