Labels

Saturday, May 8, 2010

Хувьсагч

Өгөгдлийн бүтэц
Python хэл нь маш олон төрлийн өгөгдлийн бүтцээр шууд хангагдсан байдаг нь бусад хэлээс давуу тал юм. Мөн бүтэц бүр ашиглахад маш хаялбар байдаг тул програм бичих ойлголтыг маш сонирхолтой болгодог.

Толь (dictionary)
Толь бүтэц нь нэг утгыг (value) нэг түлхүүрт (key) харгалзуулсан маш олон зангилаануудын (items) олонлог юм. Тухайн утгыг харгалзах түлхүүр үгээр дуудаж гаргаж ирэх авч түлхүүрийг харгалзах утгаар нь дуудах боломжгүй. Толь бүтэц нь тухайн утгад цор ганц түлхүүр үгээр нь хамгийн хурдан хандаж болох арга юм.
Зарлах
dict_name = {"key1":"value1", "key2":"value2"}
Бүгдийг дуудах
print dict_name
{'key1': 'value1', 'key2': 'value2'}
Түлхүүрээр дуудах
print dict_name["key2"]
'value2'
Утгыг засах
dict_name["key1"] = "value1value1"
Утга нэмэх
dict_name["key3"] = "value3"
Зангилаа устгах
del dict_name["key1"]
Ондоо төрлийн зангилаанууд
dect_name[5] = 45

Жагсаалт (list)
Жагсаалт бол index-ээрээ ялгагдах element-үүдийн цуваа юм. Тухайн утгад харгалзах дарааллынх нь дугаараар хандаж болно. Энэ нь тухайн дараалал дотуур гүйлгэн хандах боломжгийг өгдөг. Дарааллын дугаар 0 тооноос эхлэн тоологдоно, ө.х. хамгийн эхний гишүүний дарааллын дугаар 0 байна. Жагсаалтын гишүүдийг дөрвөлжийн хаалтан дотор ("[", "]") хийж өгнө.
Зарлах
list_name = ["element1", "element2", "element3"]
Бүгдийг дуудах
print list_name
['element1', 'element2', 'element3']
print list_name[:]
['element1', 'element2', 'element3']
Дугаараар дуудах
print list_name[0]
'element1'
print list_name[-1]
'element3'
print list_name[1:2]
['element2', 'element3']
print list_name[:1]
['element1', 'element2']
print list_name[1:]
['element2', 'element3']
Утга нэмэх
list_name = list_name + ['element8', 'element9']
list_name += ['elementend']
list_name += ['element'] * 3
list_name.append("elementend")
list_name.insert(3, "element4")
list_name.extend(["element6", "element7])
Утгуудын тоо
len(list_name)
Element-ээр нь index-ийг олох
list_name.index("element3")
Тухайн elemtent list-энд байгаа эсэхийг шалгах
"element9" in list_name
Element устгах
list_name.remove("element2")
list_name.pop()

Өгөглийн бүтцийн хоёртын утга
0 бол худал (false) ба бусад ямар ч тоо үнэн (true).
"" буюу хоосон мөр худал, хоосон биш л бол үнэн.
[] буюу хоосон жагсаалт худал, мөн бусад нь үнэн.
{} буюу хоосон толь бүтэц нь худал, үгүй бол үнэн.

Tuple
Tuple бол тогтмол жагсаалт (list) юм. Tuple-ээс element унших, хайх үйлдлүүд яг л жагсаалттай ижил боловч element нэмж болон хасаж болохгүй. Гэхдээ tuple бол жагсаалтаас хурдан юм. Мөн хамгаалалт сайтайн дээр тогтмол ганц indet-т програмын турш ганц л element харгалзана. Tuple-ийн гишүүдийг дугуй хаалт ("(", ")") дотор зарлана.
Зарлах
tuple_name = ("a", "b", "mpilgrim", "z", "example")

Хувьсагч
Хувьсагч нь бусад хэлүүд шиг local ба global гэсэн оролцоотой. Мөн хувьсагч зарлахдаа бүх зүйлсийг нэг бүрчлэн заах шаардлагагүй. Хувьсагчийг зарлахад анхны утга оноосон байхад л хангалттай. Эсрэг налуу зураасыг ("\") мөрийг төгсгөлд тавьсанаар тухайн мөр дараагийн мөрөндөө үргэлжлэхийг (line-continuation) заана. Энэ нь програмд нэг үйлдлийг олон мөрөнд хувааж бичих програмчлалын шаардлагаас гаралтай.
Зарлах
var = 5
vars = ('a', 'b', 'e')
(x, y, z) = vars
print x
a
(mon, tue, wed, thu, fri, sat, sun) = range(7)
print tue
2

Тэмдэгт мөр (string)
Тэмдэгт мөр төрлийн хувьсагчийг хэвлэхдээ %s гэж тэмдэгт мөр дотор хэвшүүлж авдаг. Print нь зөвхөн тэмдэгт мөрийг хэвлэдэг ба тоог %d гэж тэмдэгт мөрлүү хэвшүүлж авдаг. Мөн бусад бутархай тоог %f гэж хэвшүүлэх ба %.2f гэж таслалаас хойш 2 оронгоор хэвшүүлж авна. %+.2d гэж таслалаас хойш хоёр орон, өмнөө + тэмдэгтэй хэвшүүлнэ. Оронгийн тоо хэтэрч өгөгдвөл эхний хоёр тэмдэгтийг, дутуу өгөгдвөл үлдсэн зайг 2 болтол нь 0 цифрээр дүүргэнэ.
Зарлах
str = "string"
print "This is a %s" % str + " type of %d" % 5 + ". This is a float: %f" % 0.1234 + " but truncate this to 2 decimal places: %.2f" % 0.1234
This is a string type of 5. This is a float: 0.123400 but truncate this to 2 decimal places: 0.12
[...бичигдэж байна...]

1 comment:

ochiroo said...

(mon, tue, wed, thu, fri, sat, sun) = range(7)
print tue
2
Энэ чинь хариу нь 1 гарна биздэ