Antony Lee的技術(shù)之路
          步步為營(yíng)
          posts - 13,  comments - 3,  trackbacks - 0

          條件語(yǔ)句
              if相關(guān)
              格式:
                  1)    if expression : statement #只有一個(gè)if并且代碼塊只有一行,可以直接寫在:后面
                  2)    if expression:
                          statement
                      else:
                          statement
                  3)    if expression:
                          statement
                      elif expr2:
                          statement
                      elif ... :
                          ...
                      else:
                          statement n
              三元操作符
                  X if C else Y
              while / for and break / else
              while循環(huán)基本結(jié)構(gòu)
                  while xxx:
                      statement
              for循環(huán)基本結(jié)構(gòu)
                  for xx in iterable:
                      statement
              循環(huán)+else
                  loop
                      if ...:
                          xxx
                          break
                  else:
                      statement
                  循環(huán)+else結(jié)構(gòu),指的是如果循環(huán)完成,則執(zhí)行else中的語(yǔ)句
              continue與c / java中一樣
              pass: nop
          迭代器
              迭代器的要求:
                  提供next()方法,每次都取出下一個(gè)對(duì)象。當(dāng)next到末尾時(shí),拋出一個(gè)StopIteration異常
              迭代器的使用:
                  for循環(huán)可以支持所有可迭代的對(duì)象 (列表、字典、文件。。。)
                  使用迭代器時(shí)不應(yīng)當(dāng)改變其內(nèi)容
              創(chuàng)建迭代器
                  對(duì)一個(gè)對(duì)象調(diào)用 iter() 就可以得到它的迭代器. 它的語(yǔ)法如下:
                  iter(obj)
                  iter(func, sentinel )
                  如果是傳遞兩個(gè)參數(shù)給 iter() , 它會(huì)重復(fù)地調(diào)用 func , 直到迭代器的下個(gè)值等于sentinel

          列表解析
              語(yǔ)法
                  [expr for iter_var in iterable if cond_expr] #[]不能省略
              結(jié)果:
                  根據(jù)if條件,對(duì)iterable中所有元素進(jìn)行expr,并返回一個(gè)結(jié)果列表
                  1. 不滿足if條件的元素會(huì)被忽略,不會(huì)在結(jié)果列表中
                  2. 滿足if條件的元素會(huì)進(jìn)行expr
                  3. 最后會(huì)創(chuàng)建一個(gè)新列表保存結(jié)果
              eg
                  >>> a = [1,2,3,4,5,6]
                  >>> p = [value*2 for value in a if value%2==0]
                  >>> print p
                  [4, 8, 12]
                  >>>

          生成器表達(dá)式
              語(yǔ)法
                  (expr for iter_var in iterable if cond_expr) #()可以省略
              特點(diǎn)(與列表解析的區(qū)別)
                  表達(dá)式返回的是一個(gè)生成器。這個(gè)生成器會(huì)根據(jù)要求,把元素一個(gè)一個(gè)“生成出來(lái)”
                  優(yōu)點(diǎn):節(jié)約內(nèi)存空間,在很多情況下也能提高速度
              例子:
                  return max(len(x.strip()) for x in open('/etc/motd')) #統(tǒng)計(jì)/etc/motd文件中最長(zhǎng)的一行

           

          note note

          posted on 2011-06-13 15:40 Antony Lee 閱讀(199) 評(píng)論(0)  編輯  收藏 所屬分類: Python學(xué)習(xí)筆記

          <2011年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 中方县| 田林县| 石门县| 清河县| 澳门| 永新县| 富源县| 汽车| 安塞县| 颍上县| 综艺| 汉阴县| 忻城县| 平度市| 阿尔山市| 九龙城区| 芦山县| 永丰县| 会泽县| 通许县| 新巴尔虎右旗| 太仆寺旗| 广宁县| 故城县| 大洼县| 清远市| 德江县| 体育| 侯马市| 汶上县| 裕民县| 安西县| 井陉县| 新绛县| 舒兰市| 务川| 湟源县| 开远市| 成武县| 辽阳市| 民勤县|