Embed presentation
Download as PDF, PPTX












![Duck Typing (cont.)#!/usr/bin/env python ● String and integer both# -*- coding: utf-8 -*-# file: ex_dyn.py support += operator.def dynsum(*seq): ● Write the code with r = seq[0] for item in seq[1:]: elasticity. r += item return rif __name__ == '__main__': print dynsum(1, 2, 3) print dynsum('x', 'y', 'z') 13](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-13-2048.jpg&f=jpg&w=240)




![List Comprehension[i for i in range(10)][i ** 2 for i in range(10)][f(i) for i in range(10)][i for i in range(10) if i % 2 == 0][i for i in range(10) if not i % 2 == 0][i for i in range(10) if g(i)] 18](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-18-2048.jpg&f=jpg&w=240)
![List Comprehension (cont.)List comprehension: is equal to:[ r = [] (i, j) for i in range(3): for i in range(3) for j in range(3): for j in range(3) r.append((i, j))] 19](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-19-2048.jpg&f=jpg&w=240)
![List Comprehension (cont.)List comprehension: is equal to:[ r = [] [ for i in range(3): (i, j) t = [] for i in range(3) for j in range(3): ] t.append((i, j)) for j in range(3) r.append(t)] 20](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-20-2048.jpg&f=jpg&w=240)




![Challenge 3-3: The Primes (cont.)– limit: in one line. [2, 3, 5, 7, 11, 13, ● hint: use any or all 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] 25](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-25-2048.jpg&f=jpg&w=240)
![The zip Function● matrix = [ [1, 2], [3, 4], ]● zip(*matrix) 26](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-26-2048.jpg&f=jpg&w=240)
![The zip Function (cont.)● result = [ ('I am A.', 'email_A'), ('I am B.', 'email_B'), ]● emails = zip(*result)[1] 27](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-27-2048.jpg&f=jpg&w=240)

![The lambda Expression● lambda [args]: [expression]● It defines an anonymous function.● It only allows a single expression.● f = lambda x: g(x)+h(x)● do(lambda x, y: (x+y)*(x+y), 10, 20) 29](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-29-2048.jpg&f=jpg&w=240)
![Use sort with Lambda● d = dict(a=300, b=200, c=100)● keys = d.keys()● keys.sort(key=lambda k: d[k])● for k in keys: print k, d[k] 30](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-30-2048.jpg&f=jpg&w=240)
![Use sort with Lambda (cont.)● names = ['Andy', 'Bob', 'Cindy']● scores = [70, 100, 95]● table = zip(names, scores)● table.sort(key=lambda pair: pair[1])● for name, score in table: print name, score 31](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-31-2048.jpg&f=jpg&w=240)
![The map Function● map(lambda x: x**2, range(10))● map(int, '1 2 3'.split(' '))● map(ord, 'String')● map(open, [<paths>])● map(str.split, open(<path>)) 32](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-32-2048.jpg&f=jpg&w=240)


![Comprehension vs. map/filter● [i ** 2 for i in range(10)]● map(lambda i: i ** 2, range(10))● [i ** 2 for i in range(10) if i % 2 == 0]● map(lambda i: i ** 2, filter( lambda i: i % 2 == 0, range(10) )) 35](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-35-2048.jpg&f=jpg&w=240)
![Comprehension vs. map/filter (cont.)● [ord(c) for c in 'ABC']● map(ord, 'ABC') 36](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-36-2048.jpg&f=jpg&w=240)

![The reduce Function● # from functools import reduce # py3● from operator import add● seq = [-1, 0, 1]● reduce(add, s)● seq = ['reduce ', 'the ', 'lines.']● reduce(add, s) 38](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-38-2048.jpg&f=jpg&w=240)
![The partial Function● from functools import partial● from operator import add● rdsum = partial(reduce, add)● rdsum([-1, 0, 1])● rdsum(['reduce ', 'the ', 'lines.']) 39](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-39-2048.jpg&f=jpg&w=240)
![The partial Function (cont.)● from functools import partial● from fractions import gcd as _gcd● _gcd(6, 14)● gcd = partial(reduce, _gcd)● gcd([6, 14, 26]) 40](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-40-2048.jpg&f=jpg&w=240)









![The Data Model of Python● Special methods – __init__ – __str__ – __repr__ – __getitem__ → x[key] – __setitem__ → x[key] = value – __delitem__ → del x[key] …● ref: docs.python.org/2/reference/datamodel.html 50](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-50-2048.jpg&f=jpg&w=240)












The document covers advanced Python programming topics including modules, packages, typing (static, dynamic, weak, strong), comprehensions, functional techniques, first-class functions, and object-oriented programming. It introduces various useful libraries and culminates in a final project focused on creating a blog system. Additionally, it emphasizes best practices in coding, such as documentation and variable naming conventions.












![Duck Typing (cont.)#!/usr/bin/env python ● String and integer both# -*- coding: utf-8 -*-# file: ex_dyn.py support += operator.def dynsum(*seq): ● Write the code with r = seq[0] for item in seq[1:]: elasticity. r += item return rif __name__ == '__main__': print dynsum(1, 2, 3) print dynsum('x', 'y', 'z') 13](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-13-2048.jpg&f=jpg&w=240)




![List Comprehension[i for i in range(10)][i ** 2 for i in range(10)][f(i) for i in range(10)][i for i in range(10) if i % 2 == 0][i for i in range(10) if not i % 2 == 0][i for i in range(10) if g(i)] 18](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-18-2048.jpg&f=jpg&w=240)
![List Comprehension (cont.)List comprehension: is equal to:[ r = [] (i, j) for i in range(3): for i in range(3) for j in range(3): for j in range(3) r.append((i, j))] 19](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-19-2048.jpg&f=jpg&w=240)
![List Comprehension (cont.)List comprehension: is equal to:[ r = [] [ for i in range(3): (i, j) t = [] for i in range(3) for j in range(3): ] t.append((i, j)) for j in range(3) r.append(t)] 20](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-20-2048.jpg&f=jpg&w=240)




![Challenge 3-3: The Primes (cont.)– limit: in one line. [2, 3, 5, 7, 11, 13, ● hint: use any or all 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] 25](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-25-2048.jpg&f=jpg&w=240)
![The zip Function● matrix = [ [1, 2], [3, 4], ]● zip(*matrix) 26](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-26-2048.jpg&f=jpg&w=240)
![The zip Function (cont.)● result = [ ('I am A.', 'email_A'), ('I am B.', 'email_B'), ]● emails = zip(*result)[1] 27](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-27-2048.jpg&f=jpg&w=240)

![The lambda Expression● lambda [args]: [expression]● It defines an anonymous function.● It only allows a single expression.● f = lambda x: g(x)+h(x)● do(lambda x, y: (x+y)*(x+y), 10, 20) 29](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-29-2048.jpg&f=jpg&w=240)
![Use sort with Lambda● d = dict(a=300, b=200, c=100)● keys = d.keys()● keys.sort(key=lambda k: d[k])● for k in keys: print k, d[k] 30](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-30-2048.jpg&f=jpg&w=240)
![Use sort with Lambda (cont.)● names = ['Andy', 'Bob', 'Cindy']● scores = [70, 100, 95]● table = zip(names, scores)● table.sort(key=lambda pair: pair[1])● for name, score in table: print name, score 31](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-31-2048.jpg&f=jpg&w=240)
![The map Function● map(lambda x: x**2, range(10))● map(int, '1 2 3'.split(' '))● map(ord, 'String')● map(open, [<paths>])● map(str.split, open(<path>)) 32](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-32-2048.jpg&f=jpg&w=240)


![Comprehension vs. map/filter● [i ** 2 for i in range(10)]● map(lambda i: i ** 2, range(10))● [i ** 2 for i in range(10) if i % 2 == 0]● map(lambda i: i ** 2, filter( lambda i: i % 2 == 0, range(10) )) 35](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-35-2048.jpg&f=jpg&w=240)
![Comprehension vs. map/filter (cont.)● [ord(c) for c in 'ABC']● map(ord, 'ABC') 36](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-36-2048.jpg&f=jpg&w=240)

![The reduce Function● # from functools import reduce # py3● from operator import add● seq = [-1, 0, 1]● reduce(add, s)● seq = ['reduce ', 'the ', 'lines.']● reduce(add, s) 38](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-38-2048.jpg&f=jpg&w=240)
![The partial Function● from functools import partial● from operator import add● rdsum = partial(reduce, add)● rdsum([-1, 0, 1])● rdsum(['reduce ', 'the ', 'lines.']) 39](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-39-2048.jpg&f=jpg&w=240)
![The partial Function (cont.)● from functools import partial● from fractions import gcd as _gcd● _gcd(6, 14)● gcd = partial(reduce, _gcd)● gcd([6, 14, 26]) 40](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-40-2048.jpg&f=jpg&w=240)









![The Data Model of Python● Special methods – __init__ – __str__ – __repr__ – __getitem__ → x[key] – __setitem__ → x[key] = value – __delitem__ → del x[key] …● ref: docs.python.org/2/reference/datamodel.html 50](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fprogramming-with-python-adv-130312114202-phpapp02%2f75%2fProgramming-with-Python-Adv-50-2048.jpg&f=jpg&w=240)










