Пайтон дахь таталган бичиг ба мөнхийн хөдөлгүүр
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 1,032 views
Uploaded on

МБГ 11.5

МБГ 11.5

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,032
On Slideshare
1,032
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
8
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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