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

          條件語(yǔ)句
              if相關(guān)
              格式:
                  1)    if expression : statement #只有一個(gè)if并且代碼塊只有一行,可以直接寫(xiě)在:后面
                  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. 不滿(mǎn)足if條件的元素會(huì)被忽略,不會(huì)在結(jié)果列表中
                  2. 滿(mǎn)足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 閱讀(208) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Python學(xué)習(xí)筆記

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

          常用鏈接

          留言簿(1)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 扬中市| 从江县| 玛曲县| 民丰县| 南皮县| 乳源| 阜平县| 合阳县| 金阳县| 饶阳县| 秦皇岛市| 阿勒泰市| 彭泽县| 荆门市| 贵港市| 申扎县| 西安市| 文安县| 白城市| 莱芜市| 鸡西市| 建阳市| 灌云县| 井陉县| 荆州市| 兴化市| 雅安市| 忻州市| 揭东县| 满洲里市| 米泉市| 青阳县| 乐业县| 建昌县| 嘉黎县| 连山| 文安县| 芜湖县| 梧州市| 廉江市| 平凉市|