Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Django Girls Taipei: Python

Django Girls Taipei: Python

Python 教學(用於 Django Girls Taipei)

9dafad54b5b4f360b7aae5f482bc1c91?s=128

Tzu-ping Chung

May 30, 2015
Tweet

More Decks by Tzu-ping Chung

Other Decks in Programming

Transcript

  1. Python djangogirlstaipei.herokuapp.com/tutorials/python/

  2. (٥̫٥)א 锞㢵䭸來 Python

  3. C:\Users\Tzu-­‐ping  Chung>python3   Python  3.4.1  (v3.4.1:c0e311e010fc,  May  18   2014,

     10:38:22)  [MSC  v.1600  32  bit  (Intel)]   on  win32   Type  "help",  "copyright",  "credits"  or   "license"  for  more  information.   >>>
  4. uranusjr@ubuntu:~$  python3   Python  3.4.0  (default,  Apr  11  2014,  13:05:11)

        [GCC  4.8.2]  on  linux   Type  "help",  "copyright",  "credits"  or   "license"  for  more  information.   >>>  
  5. uranusjr:~  uranusjr$  python3   Python  3.4.1  (default,  Aug  24  2014,

     21:32:40)     [GCC  4.2.1  Compatible  Apple  LLVM  5.1   (clang-­‐503.0.40)]  on  darwin   Type  "help",  "copyright",  "credits"  or   "license"  for  more  information.   >>>
  6. >>>  2  +  3   5

  7. (٥̫٥) 5 2 + 3

  8. >>>  4  *  5   ???   >>>  40  /

     (7  -­‐  3)  *  2   ???   >>>  2  **  3   ???
  9. >>>  'I  am  a  Django  Girl'   'I  am  a

     Django  Girl'   >>>  'Hello  '  +  'Django'   'Hello  Django'   >>>  'Django  '  *  3   'Django  Django  Django  '   >>>  len('Django')   6
  10. >>>  len('Django')   6 ⴅ䒭

  11. ⴄ䒭涸せ㶵(「鑁)

  12. >>>  len(304023)   Traceback  (most  recent  call  last):    

     File  "<stdin>",  line  1,  in  <module>   TypeError:  object  of  type  'int'  has  no  len()
  13. >>>  len(304023)   Traceback  (most  recent  call  last):    

     File  "<stdin>",  line  1,  in  <module>   TypeError:  object  of  type  'int'  has  no  len()
  14. >>>  len(str(304023))   6

  15. >>>  str(304023)   '304023'   >>>  int('123')   123  

    >>>  int('Hello!')   ???
  16. >>>  int('Hello!')   Traceback  (most  recent  call  last):    

     File  "<stdin>",  line  1,  in  <module>   ValueError:  invalid  literal  for  int()  with   base  10:  'Hello!'
  17. >>>  pet  =  'Kitty'   >>> 岣䠐鸍儗⦪湫陻㐻չ♶剙պ㔐⫄湫〪剙 랾랾䪾隵侶涸⧩鏣饯⢵կ

  18. 'Kitty' pet

  19. >>>  pet  =  'Kitty'   >>>  pet   'Kitty'  

    >>>  len(pet)   5 >>>  seven  =  7   >>>  six  =  6   >>>  answer  =  seven  *  six   >>>  answer   42
  20. >>>  pet  =  'Kitty'   >>>  pat   ???

  21. (٥̫٥) 'Kitty' pet 'Kitty' pet

  22. (խ̫)? ???? pat 'Kitty' pet

  23. >>>  pet  =  'Kitty'   >>>  pat   Traceback  (most

     recent  call  last):      File  "<stdin>",  line  1,  in  <module>   NameError:  name  'pat'  is  not  defined
  24. >>>  []   []   >>>  lottery  =  [59,  42,

     30,  19,  12,  3]   >>>  len(lottery)   6
  25. >>>  lottery[0]   59   >>>  lottery[1]   42  

    >>>  lottery[-­‐1]   ???   >>>  lottery[1000]   ???
  26. >>>  lottery  =  [59,  42,  30,  19,  12,  3]  

    >>>  print(lottery[1000])   Traceback  (most  recent  call  last):      File  "<stdin>",  line  1,  in  <module>   IndexError:  list  index  out  of  range
  27. >>>  lottery  =  [59,  42,  30,  19,  12,  3]  

    >>>  lottery[1]  =  22   >>>  lottery   [59,  22,  30,  19,  12,  3]  
  28. >>>  {}   {}   >>>  my_information  =  {  

    ...        'name':  'Pusheen  the  Cat',   ...        'country':  'USA',   ...        'favorite_numbers':  [42,  105]}   >>>  len(my_information)   3
  29. >>>  my_information['name']   Pusheen  the  Cat   >>>  my_information['age']  

    ???
  30. >>>  my_information['age']   Traceback  (most  recent  call  last):    

     File  "<stdin>",  line  1,  in  <module>   KeyError:  'age'
  31. >>>  my_information   {'name':  'Pusheen  the  Cat',  'country':   'USA',

     'favorite_numbers':  [42,  105]}   >>>  my_information['color']  =  'gray'   >>>  len(my_information)   4   >>>  del  my_information['farovite_numbers']   >>>  my_information   {'name':  'Pusheen  the  Cat',  'country':   'USA',  'color':  'gray'}
  32. >>>  my_information['name']  =  'Pusheen'   >>>  my_information   {'name':  'Pusheen',

     'country':  'USA',   'color':  'gray'}
  33. >>>  5  >  2   True   >>>  3  <

     1   False   >>>  5  >  2  *  3   False   >>>  1  ==  1   True
  34. >>>  6  >=  12  /  2   True   >>>

     3  <=  2   False   >>>  6  >  2  and  2  <  3   True   >>>  3  >  2  and  2  <  1   False   >>>  3  >  2  or  2  <  1   True
  35. >>>  'Sherlock'  >  'John'   ???   >>>  1  <

     'Django'   ???
  36. >>>  'Sherlock'  >  'John'   True   >>>  1  <

     'Django'   Traceback  (most  recent  call  last):      File  "<stdin>",  line  1,  in  <module>   TypeError:  unorderable  types:  int()  <   str()
  37. • NameError   • ValueError   • IndexError   •

    KeyError   • TypeError
  38. >>>  is_cool  =  True   >>>  is_cool   True  

    >>>  can_go_home  =  2  >  5   >>>  can_go_home   False
  39. >>>  True  and  True   ???   >>>  False  and

     True   ???   >>>  True  or  1  ==  1   ???   >>>  1  !=  2   ???
  40. >>>  pet  =  'Pusheen'   >>>  pet   'Pusheen'  

    >>>  print(pet)   Pusheen
  41. (٥̫٥) 'Pusheen' QFU酭꬗僽➊ 랃 'Pusheen' pet

  42. (٥̫٥)א ⽫ⴀQFU涸Ⰹ㺂 Pusheen 'Pusheen' pet

  43. (٥̫٥) 6 TJY酭꬗僽➊랃 6 six

  44. (٥̫٥)א ⽫ⴀTJY涸Ⰹ㺂 6 six 6

  45. None
  46. $  python3  my_program.py   'I  am  a  Django  Girl'

  47. 㛂遤鸏❉䭸⟂ (٥̫٥)א 穡卓

  48. if  3  >  2:  

  49. $  python3  my_program.py   File  "my_program.py",  line  2    

                   ^   SyntaxError:  unexpected  EOF   while  parsing
  50. if  3  >  2:          print('It  works!')

      㔋⦐瑠涯 侄箺銲岣䠐♧♴㷷㆞涸箟鰿㐻剣鏣㹀䧭 tab with spaces ㄤ tab size = 4
  51. $  python3  my_program.py   It  works!

  52. if  2  >  5:          print('2  >

     5')   else:          print('2  <=  5') $  python3  my_program.py   2  <=  5  
  53. if  2  >  5:          print('2  >

     5')   elif  2  <  5:          print('2  <  5')   else:          print('2  ==  5') $  python3  my_program.py   2  <  5  
  54. def  hi():          print('Hi  there!')    

         print('How  are  you?')   $  python3  my_program.py  
  55. def  hi():          print('Hi  there!')    

         print('How  are  you?')   hi() $  python3  my_program.py   Hi  there!   How  are  you?
  56. def  hi(name):          print('Hi'  +  name  +'!')

             print('How  are  you?')   hi()
  57. $  python3  my_program.py   Traceback  (most  recent  call  last):  

    File  "my_program.py",  line  4,  in        hi()   TypeError:  hi()  missing  1  required   positional  argument:  'name'
  58. def  hi(name):          print('Hi'  +  name  +'!')

             print('How  are  you?')   hi('Pusheen') $  python3  my_program.py   Hi  Pusheen!   How  are  you?
  59. ㋿

  60. class  Cat:          def  meow(self):    

                 print('Meow!')  
  61. class  Cat:          def  meow(self):    

                 print('Meow!')   pusheen  =  Cat()   pusheen.meow() $  python3  cat.py   Meow!
  62. class  Cat:          def  __init__(self,  name):  

                   self.name  =  name          def  meow(self):                  print(self.name  +  '  Meow!')   pusheen  =  Cat()   pusheen.meow()
  63. $  python3  cat.py   Traceback  (most  recent  call  last):  

       File  "cat.py",  line  8,  in            pusheen  =  Cat()   TypeError:  __init__()  missing  1  required   positional  argument:  'name'
  64. class  Cat:          def  __init__(self,  name):  

                   self.name  =  name          def  meow(self):                  print(self.name  +  '  Meow!')   pusheen  =  Cat()   pusheen.meow()  
  65. class  Cat:          def  __init__(self,  name):  

                   self.name  =  name          def  meow(self):                  print(self.name  +  '  Meow!')   pusheen  =  Cat('Pusheen')   pusheen.meow()   $  python3  cat.py   Pusheen  Meow!  
  66. class  Cat:          def  __init__(self,  name):  

                   self.name  =  name          def  meow(self):                  print(self.name  +  '  Meow!')   pusheen  =  Cat('Pusheen')   pusheen.meow()   print(pusheen) $  python3  cat.py   Pusheen  Meow!   <__main__.Cat  object  at  0x1006f15c0>
  67. class  Cat:          def  __init__(self,  name):  

                   self.name  =  name          def  __str__(self):                  return  'Cat:  '  +  self.name          def  meow(self):                  print(self.name  +  '  Meow!')   pusheen  =  Cat('Pusheen')   pusheen.meow()   print(pusheen)
  68. $  python3  cat.py   Pusheen  Meow!   Cat:  Pusheen

  69. def  hi(name):          print('Hi  '  +  name

     +  '!')   girls  =  ['Michelle',  'Ola',  'you']   for  name  in  girls:          hi(name)          print('Next  girl')
  70. $  python3  say_hi.py   Hi  Michelle!   Next  girl  

    Hi  Ola!   Next  girl   Hi  you!   Next  girl
  71. class  Cat:          def  __init__(self,  name):  

                   self.name  =  name          def  __str__(self):                  return  'Cat:  '  +  self.name          def  meow(self):                  print(self.name  +  '  Meow!') pet.py
  72. import  pet   cats  =  [        

     pet.Cat('Kitty'),          pet.Cat('Pusheen'),          pet.Cat('Doraemon'),   ]   for  cat  in  cats:          cat.meow() say_meow.py
  73. $  ls   pet.py      say_meow.py   $  python3

     say_meow.py   Kitty  Meow!   Pusheen  Meow!   Doraemon  Meow!
  74. #  䪾  pet  垷穈⻼Ⰵ   import  pet   #  䪾

     pet  酬꬗涸  Cat  겲ⴽ⻼Ⰵ   from  pet  import  Cat
  75. 姻鋊邍爚䒭 3FHVMBS&YQSFTTJPO

  76. 〵⻍䋑⥌纏⼦匡➋騟贫垜 넞꧆䋑뛥㚆⼦⚥姻㔋騟贫 㾓匌簖惐䊝ꔩꆄꤰ遳贫 倞畾簖畾⻍䋑⯕僈Ⱉ騟匌♧媯贫

  77. 〵⻍䋑⥌纏⼦匡➋騟贫垜 넞꧆䋑뛥㚆⼦⚥姻㔋騟贫 㾓匌簖惐䊝ꔩꆄꤰ遳贫 倞畾簖畾⻍䋑⯕僈Ⱉ騟匌♧媯贫

  78. import  re   addresses  =  [        

     '台北市信義區松仁路7號8樓',          '高雄市鹽埕區中正四路274號',          '屏東縣潮州鎮金陵街31號',          '新竹縣竹北市光明六路東一段183號',   ]   for  addr  in  addresses:          print(re.search(r'\w+市',  addr)) address.py
  79. import  re   addresses  =  [        

     '台北市信義區松仁路7號8樓',          '高雄市鹽埕區中正四路274號',          '屏東縣潮州鎮金陵街31號',          '新竹縣竹北市光明六路東一段183號',   ]   for  addr  in  addresses:          print(re.search(r'\w+市',  addr)) address.py
  80. \w+䋐 ♧⦐㶶 ⵹꬗涸匌銯 ♧⦐⟃♳ չ䋑պ鸏⦐㶶

  81. for  addr  in  addresses:          match  =

     re.search(r'(?P<city>\w+市)',  addr)          if  match:                  print(match.group('city')) address.py $  python3  address.py   台北市   高雄市   新竹縣竹北市
  82. for  addr  in  addresses:          match  =

     re.search(r'(?P<city>\w{2}市)',  addr)          if  match:                  print(match.group('city')) address.py $  python3  address.py   台北市   高雄市   竹北市
  83. for  addr  in  addresses:          match  =

     re.search(r'^(?P<city>\w{2}市)',  addr)          if  match:                  print(match.group('city')) address.py $  python3  address.py   台北市   高雄市  
  84. 〵⻍䋑⥌纏⼦匡➋騟贫垜 넞꧆䋑뛥㚆⼦⚥姻㔋騟贫 㾓匌簖惐䊝ꔩꆄꤰ遳贫 倞畾簖畾⻍䋑⯕僈Ⱉ騟匌♧媯贫

  85. 〵⻍䋑⥌纏⼦匡➋騟贫垜 넞꧆䋑뛥㚆⼦⚥姻㔋騟贫 㾓匌簖惐䊝ꔩꆄꤰ遳贫 倞畾簖畾⻍䋑⯕僈Ⱉ騟匌♧媯贫

  86. for  addr  in  addresses:          match  =

     re.search(                  r'(?P<no>\d+號)$',                  addr,          )          if  match:                  print(match.group('no')) address.py $  python3  address.py   274號   31號   183號  
  87. for  addr  in  addresses:          match  =

     re.search(                  r'(?P<no>\d+號(\d+樓)?)$',                  addr,          )          if  match:                  print(match.group('no')) address.py $  python3  address.py   7號8樓   274號   31號   183號
  88. ^ Ꟛ걧 $ 穡㽵 \w ♧⦐㶶 \d ♧⦐꣚䬘⠭侸㶶 + ⵹꬗涸匌銯♧⦐⟃♳

    {num} ⵹꬗涸匌銯剤num⦐ ? ⵹꬗涸匌銯ꨫ䧴♧⦐ (  ...  ) 䪾匌銯穉ざ㖈♧饱 (?P<name>  ...) 䪾匌銯穉ざ㖈♧饱⚛《そ䧭name
  89. ‧ӹ,:*:‧\(ӟ)/‧:*‧°ӹ*