Tuesday, June 22, 2010

Python дээр тоотой ажиллах, утга олгох

Нэгэнт л Python хэлний тоо, тэмдэгт өгөгдөлтэй ажиллах талаар тайлбарлаж, түүнийгээ Python-ний өөрийнх нь interpreter-р ажлуулж харуулах гэж байгаа учир юун түрүүнд interpreter гэж юу болох талаар жаахан тайлбарлая.

Interpreter гэж юу вэ ?
Энэ аман орчуулагч, хэлмэрч гэж хар үгээр тайлбарлаж болно. Харин компайлер нь бичгийн орчуулагч буюу тухайн нэг хэлэн дээр бичигдсэн зүйлийг өөр хэл рүү буулгах ажил явуулдаг.
 
Үүнийг илүү дэлгэрэнгүй авч үзвэл, JAVA, C, C++, Delphi зэрэг compiled хэлүүд нь компайл хийгдэх буюу програмын эх кодоосоо зөвхөн компьютер ойлгох машины код руу хөрвүүлэгдсэний дараагаар ажилладаг. Харин Interpreted хэлүүд болох Python, Lisp, Perl зэрэг нь ямар нэгэн байдлаар машин код руу хөрвүүлэгдэхгүйгээр шууд ажилладаг. Энэ нь компайлаж ажлуулснаас мэдээжийн хэрэг бага хугацаа зарцуулдаг. 

Python interpreter 
Python хэл дээр тоо, тэмдэгт өгөгдлүүдтэй хэрхэн ажилладгыг интерпретер ашиглан харуулах болно. Энэ ямар нэгэн байдлаар програмын эх кодыг машин код руу хөрвүүлэхгүйгээр шууд ажлуулдаг учир хүссэн хариу, үр дүнг харах, ямар нэгэн жижигхэн туршилт хийхэд нэн тохиромжтой юм.

Python-ний интерпретерээ ажлуулахдаа 

saka@ubuntu:~$ python 
командыг өгөх ба дараах мэдээлэл болон өгөгдөл оруулах >>> тэмдэгт харагдана.

Python 2.6.4 (r264:75706, Dec  7 2009, 18:45:15) 
[GCC 4.4.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

Тоотой ажиллах

За одоо энгийн тоон утгууд дээр үйлдэл хийж үзье.

Нэмэх үйлдэл маш энгийн интерпретерээ ажлуулаад 2+8888 гээд энтэр дарахад
>>> 2+8888                  # нэмэх үйлдэл
8890 

Бусад арифметик үйлдлүүдийг бичвэл :
>>> 1255/23          #бүхлээр хуваах үйлдэл
54 
>>> 1203%4           #үлдэгдэлтэй хуваах(module) үйлдэл


Илэрхийллийг * / дараа нь + - гэсэн дарааллаар гүйцэтгэдэг.
>>> (90-15*2)/6 
10 

Арифметикийн үйлдлүүд энэ мэтчилэн ажиллах бөгөөд арай өөр өгөгдөл, нэмэлт функцуудыг нь ашиглаж үзье.
>>> 2j+2                 #комплекс тоо
(2+2j)
>>> 1j*1j 
(-1+0j) 
>>> (2j-5)*2             #комплекс болон тоо үржвэр
(-10+4j) 
>>> (2j+1)*(3j-1)        #комплекс тоонууд дээрх үржвэр
(-7+1j) 
>>> (2j+4)/(2j-1)        #комплекс тоонууд дээрх хуваах үйлдэл
-2j 
>>> 5.0/2      #бутархай тоон дээр ажиллах бүрэн боломжтой
2.5 
>>> 
>>> 5/2   #таслал бичээгүй болхоор бутархай биш гэж үзээд     бүхлээр хувааж бна


>>> 1111111111*2         
2222222222L 
>>> 12121212*45 
545454540 

Утга олголт

Python хэл дээр утга олголт нь нэлээд уян хатан гэж хэлж болно.
Дараах байдлаар хувьсагчид утга олгон, тэр утгаа ашиглаж байгаа жишээг үзье.

>>> urt = 10 
>>> orgon = 5 
>>> urt*orgon 
50 

Нэгэн зэрэг олон хувьсагчдад утга олгох боломжтой .
>>> a = b = c = 50 
>>> a 
50 
>>> b 
50 
>>> c 
50 

Харин зарлаагүй хувьсагчид хандахад дараах алдааг өгнө :
>>> z 
Traceback (most recent call last): 
  File "", line 1, in  
NameError: name 'z' is not defined 

>>> f = 3j-5 
>>> f.real             # комплекс тооны бодит хэсгийг авна
-5.0 
>>> f.imag           # комплекс тооны хуурмаг хэсгийг авна
3.0 

>>> nemegdexuun = 15 
>>> utga = 10 
>>> utga + nemegdexuun 
25 
>>> utga + _         # '_' тэмдэгт нь хамгийн сүүлд гарсан утгыг заадаг
35 
>>> _ + nemegdexuun 
50 

2 comments:

  1. nadad zaagaad og please Zorig_ezd@yahoo.com

    ReplyDelete
  2. за тэгхээр залуу мин чамд хэлэх ганц юм байна, замдаа тааралдсан юм болгоныг цээжлээд яваад бай гэхгүй юу, би бол өөрөө шинэков болхоор надаа энэ дээр бичсэнээс өөр илүү гарсан, аймар мэдлэг байхгүй болой !!!

    Хэрэв чи бүр шийдээд аврага могой болхоор сэтгэл шулуудсан бол өөрийнх нь documentatoin-г нь нэг хараад үз, тэгээд ер нь цаашаагаа тодорхой болно доо

    ReplyDelete

Сэтгэгдэл үлдээж байгаад баярлалаа :]