Tuesday, June 22, 2010

Python дээрх list төрөл, нөхцөл шалгах, for давталт ашиглах

List өгөгдлийн төрөл
Энэхүү өгөгдлийн төрөл нь нэлээд өргөн боломжтой бөгөөд энд дурын өгөгдлүүд нэг дор хадгалах боломжтой.
>>> f = [1212,122,'gfgf',"gf"]
>>> f
[1212, 122, 'gfgf', 'gf']
Бүр дотроо дахин хэдэн ч хамаагүй list төрөл агуулж болдог.
>>> f = ['fdfd',1233,f]
>>> f
['fdfd', 1233, [1212, 122, 'gfgf', 'gf']]
>>> f = ['fdfd',1233, [1212,122,'gfgf',f,'gf']]
>>> f
['fdfd', 1233, [1212, 122, 'gfgf', ['fdfd', 1233, [1212, 122, 'gfgf', 'gf']], 'gf']]
гэх мэт нэлээд нарийн шаталсан бүтэцтэй болж ирдэг.
Тэдгээр элементэд нь дараах замаар хандана.
>>> f
['fdfd', 1233, [1212, 122, 'gfgf', ['fdfd', 1233, [1212, 122, 'gfgf', 'gf']], 'gf']]
>>> f[0]
'fdfd'
>>> f[1]
1233
>>> f[:1]
['fdfd']
>>> f[0:2]
['fdfd', 1233]
>>> f[0:3]
['fdfd', 1233, [1212, 122, 'gfgf', ['fdfd', 1233, [1212, 122, 'gfgf', 'gf']], 'gf']]

>>> f[2]
[1212, 122, 'gfgf', ['fdfd', 1233, [1212, 122, 'gfgf', 'gf']], 'gf']
>>> f[2][0]
1212

гэх мэтээр хандаж болно.

If, elif, else нөхцөл шалгах үйлдлүүд
Энд анхаарах зүйл нь тодорхойлох цэг авахаал энтэр дарахад өөрөө доош мөр шилжинэ. Харин ингэж шилжсэний дараагаар шууд бичиж эхлэвэл алдаа заана.
>>> x = int(raw_input("Utgaa oruulna uu ???"))
Utgaa oruulna uu ???100
>>> if x < 0 :
...     print 'sorog too'   
... elif x == 0:
...     print 'zero'
... else:
...     print 'tegees ix utga'
...
tegees ix utga

Дээрх хэсэг таб авсан байгааг харж байгаа байх, энд тухайн нөхцөл шалгах үйлдэл нь харгалзах хаалтандаа хамаарна гэдгийг анхаарах хэрэгтэй.

>>> x = 10
>>> if x > 0 :
...     if x < 20:
...             print '0<20'
...     else:
...             print 'x>=20'
... elif x > -10:
...     print '-10<0'
... else:
...     print 'x<-10'
...
0<20            # үр дүн

Шууд бичвэл дараах алдаа заана.

>>> if x < 0 :
... print 'sorog'
  File "", line 2
    print 'sorog'
        ^
IndentationError: expected an indented block

If:
...
elif:
...
elif:
...
elif:
...
else:
...

гэсэн бүтэцтэйгээр хэдэн ч удаа elif-г ашиглах боломжтой харин хамгийн сүүлд нь else-р төгсөх ёстойг анхаарах хэрэгтэй.

for давталт
 >>> a = ['neg','xoer','guraw']
>>> for x in a:
...     print x
...
neg
xoer
guraw


Гэх мэт дээрх байдлаар for давталтыг ашиглах боломжтой.
Энд мөн range(x,y) гэсэн нэг функц байдаг бөгөөд үүнийг дараах байдлаар давталтанд ашиглаж болно :

>>> for i in range(4,11):
...     print i
...
4
5
6
7
8
9
10
Арай жаахан өөр жишээ үзвэл :
>>> a = ['hi','good','bad','worse']
>>> for i in a:
...     print i,
...     if len(i)>4:
...             print 'urt'
...     elif len(i)>2:
...             print 'normal'
...     else:
...             print 'bogino'
...
hi bogino
good normal
bad normal
worse urt

No comments:

Post a Comment

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