Your SlideShare is downloading. ×
0
Пайтон дахь таталган бичиг болон мөнхийн хөдөлгүүр Лимнукс – МБГ 2011.05 [email_address]
Агуулга <ul><li>List comprehension
Generators
Generator expression
itertools
Бяцхан бодлого </li></ul>
Саальчны үлгэр “ ... Саальчин үнээдээ саагаад сүүгээ шүүж тогоонд хийв.” cauldron = [] for milk in milk(cows): cauldron.ap...
Жишээ <ul><li>x, y
X хүртэлх тоонуудын y зэргийн нийлбэрийг олъё.
range(x+1)
math.pow(x, y) </li></ul>
Жишээ zerguud = [] for i in range(x+1): zerguud.append(math.pow(i, y)) niilber = sum(zerguud) niilber = sum([math.pow(i, y...
Жишээ II <ul><li>х хүртэлх  тэгш  тоонуудын y зэргийн нийлбэрийг олъё. </li></ul>zerguud = [] for i in range(x+1): if i%2 ...
Давхар давталт result = [j for i in range(2, 8)      for j in range(i*2, 50, i)] result = [] for i in range(2, 8): for j i...
Бодит ертөнц <ul><li>Их хэмжээний өгөгдөлтэй ажиллах үед яах вэ? </li></ul>rows = complex_db_query() len(rows) == 100000 r...
Generators! <ul><li>Нэг бус (үргэлжилсэн) үр дүн гаргадаг фүнкц </li></ul>def process_rows(rows): for row in rows: yield  ...
Upcoming SlideShare
Loading in...5
×

Пайтон дахь таталган бичиг ба мөнхийн хөдөлгүүр

800

Published on

МБГ 11.5

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
800
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Пайтон дахь таталган бичиг ба мөнхийн хөдөлгүүр"

  1. 1. Пайтон дахь таталган бичиг болон мөнхийн хөдөлгүүр Лимнукс – МБГ 2011.05 [email_address]
  2. 2. Агуулга <ul><li>List comprehension
  3. 3. Generators
  4. 4. Generator expression
  5. 5. itertools
  6. 6. Бяцхан бодлого </li></ul>
  7. 7. Саальчны үлгэр “ ... Саальчин үнээдээ саагаад сүүгээ шүүж тогоонд хийв.” cauldron = [] for milk in milk(cows): cauldron.append(filter(milk)) cauldron = [filter(milk) for milk in milk(cows)]
  8. 8. Жишээ <ul><li>x, y
  9. 9. X хүртэлх тоонуудын y зэргийн нийлбэрийг олъё.
  10. 10. range(x+1)
  11. 11. math.pow(x, y) </li></ul>
  12. 12. Жишээ zerguud = [] for i in range(x+1): zerguud.append(math.pow(i, y)) niilber = sum(zerguud) niilber = sum([math.pow(i, y) for i in range(x+1)])
  13. 13. Жишээ II <ul><li>х хүртэлх тэгш тоонуудын y зэргийн нийлбэрийг олъё. </li></ul>zerguud = [] for i in range(x+1): if i%2 == 0: zerguud.append(math.pow(i, y)) niilber = sum(zerguud) niilber = sum([math.pow(i, y) for i in range(x+1) if not i%2])
  14. 14. Давхар давталт result = [j for i in range(2, 8) for j in range(i*2, 50, i)] result = [] for i in range(2, 8): for j in range(i*2, 50, i): result.append(j)
  15. 15. Бодит ертөнц <ul><li>Их хэмжээний өгөгдөлтэй ажиллах үед яах вэ? </li></ul>rows = complex_db_query() len(rows) == 100000 rows_processed = [heavy_processing(row) for row in rows] 100000 мөрийг боловсруулж дуусахыг хүлээгээд санах ойд хадгална гэдэг ч...
  16. 16. Generators! <ul><li>Нэг бус (үргэлжилсэн) үр дүн гаргадаг фүнкц </li></ul>def process_rows(rows): for row in rows: yield heavy_processing(row) rows_processed = process_rows(rows) type(rows_processed) < generator object <genexpr> at 0x951c7fc>
  17. 17. Generators! <ul><li>Энгийн фүнкцээс ондоо
  18. 18. Нэг утга буцаахын ( return ) оронд хэд хэдийг буцаадаг ( yield ).
  19. 19. yield илэрхийлэл утга буцаагаад фүнкцийг зогсоож дараагийн дуудлагыг хүлээнэ.
  20. 20. Generator фүнкцийг ажиллуулснаар generator object үүснэ, фүнкц өөрөө ажиллахгүй.
  21. 21. Үр дүн авахын тулд ихэвчлэн for давталтанд оруулдаг. </li></ul>
  22. 22. Generator expression rows_processed = (heavy_processing(row) for row in rows)
  23. 23. Олон гарц <ul><li>Нэг generator фүнкц олон гарцтай байж болно. </li></ul>def do(): for i in range(100): yield i ... yield magic(i) <ul><li>Мөн олон орцтой байж болно...? </li></ul>
  24. 24. itertools <ul><li>Generator үүсгэдэг төрөл бүрийн фүнкцийн цуглуулга.
  25. 25. itertools.count
  26. 26. itertools.groupby
  27. 27. itertools.izip
  28. 28. itertools.imap
  29. 29. itertools.chain </li></ul>
  30. 30. Бяцхан бодлого <ul><li>itertools.count – Тоолдог фүнкц
  31. 31. Бүх тэгш тооны квадратын нийлбэр? </li></ul>import itertools niilber = sum(i*i for i in itertools.count() if not i%2)
  32. 32. Цаашилбал <ul><li>Expert Python Programming – 2 дугаар бүлэг </li></ul>
  33. 33. Гялайлаа. <ul><li>http://pyc.mn
  34. 34. http://github.com/python-mongolia
  35. 35. http://groups.google.com/group/py-mn </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×