亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

對Python生成器、裝飾器、遞歸的使用詳解

系統 1796 0

1、Python生成器表達式

1)、Python生成器表達式

語法格式:

(expr for iter_var in iterable)

(expr for iter_var in iterable ifcond_expr)

2)、自定義生成器

函數中使用yield,會返回一個生成器對象。yieldx

生成器使用示例:

            
In [1]:list((i**2 for i in range(1,11)))

Out[1]:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

In [2]:def genNum(x):

 ...:  y = 0

 ...:  while y <= x:

 ...:    yield y

 ...:    y += 1

In [3]: g1= genNum(4)

In [4]:type(g1)

Out[4]:generator

In [5]:g1.next()

Out[5]:0

In [6]:g1.next()

Out[6]:1

In [7]:g1.next()

Out[7]:2

In [8]:g1.next()

Out[8]:3

In [9]:g1.next()

Out[9]:4

In [10]:g1.next()

--------------------------------------------------

StopIteration      Traceback (most recent call last)

in()

----> 1g1.next()

StopIteration:

In [11]:def genNum(n):

 ....:  i = 1

 ....:  while i <= n:

 ....:    yield i ** 2

 ....:    i += 1

In [12]:g1 = genNum(20)

In [13]:for i in g1:

 ....:  print i,

 ....:  

1 4 9 1625 36 49 64 81 100 121 144 169 196 225 256 289 324 361400

          

2、Python裝飾器

1)、裝飾器本身是一個函數,用于裝飾其它函數;

2)、功能:增強被裝飾函數的功能;

裝飾器一般接受一個函數對象作為參數,以對其進行增強

例1:裝飾器使用示例

            
In [1]:def decorater(func):

 ...:  def wrapper():

 ...:    print "Just a Decorater!"

 ...:    func()

 ...:    raw_input('Please Input your name:')

 ...:  return wrapper

 ...:

In [2]:@decorater

  ...:def show():

 ...:  print "I am from China."

 ...:  

In [3]:show()

Just aDecorater!

I am fromChina.

PleaseInput your name:Fieldyang

          

例2:對能夠傳入參數的函數進行裝飾

            
In [1]:def decorater(func):

 ...:  def wrapper(x):

 ...:    print "Just a Decorater!"

 ...:    func(x)

 ...:    raw_input('Please Input your name:')

 ...:  return wrapper

 ...:

In [2]:@decorater

  ...:def show(x):

 ...:  print "I am from China.%s" %x

 ...:  

In [3]:show('how are you ?')

Just aDecorater!

I am fromChina.how are you ?

PleaseInput your name:Fieldyang


          

3、Python遞歸

遞歸需要邊界條件,遞歸前進段和遞歸返回段;

            
    10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 *1

    10 * (10-1)* ((10-1)-1)* ...

          

遞歸函數使用示例:

            
In [1]:def recursion(n):

 ...:  if n <= 1: return 1

 ...:  else: return n * recursion(n-1)

 ...: 

          

#遞歸函數相當于如下過程:

            
In [2]: recursion(3) = 3 * recursion(2)= 3 * 2 *recursion(1)=3*2*1

KeyboardInterrupt

In [3]:recursion(3)

Out[3]:6

In [4]:recursion(4)

Out[4]:24

In [5]:recursion(5)

Out[5]:120

In [6]:recursion(10)

Out[6]:3628800

          

以上這篇對Python生成器、裝飾器、遞歸的使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月婷婷狠狠干 | 四虎最新免费网址 | 成人夜色视频网站在线观看 | 特级毛片免费播放 | 国产成人高清视频免费播放 | 日韩欧美精品在线视频 | 亚洲成a人片毛片在线 | 一区二区三区精品国产 | 亚洲精品国产成人 | 奇米在线777在线视频 | 99热这里只有精品6免费 | 在线不卡一区二区 | 亚洲第一区视频在线观看 | 视频一区二区三区在线观看 | 色哟网站 | 好爽毛片一区二区三区四区 | 亚洲国产二区三区久久 | www.四虎影 | 国产精品自拍视频 | 日本α级毛片视频免费观看 | 色九九亚洲偷偷动态图 | 伊人久久成人爱综合网 | 久久精品国产69国产精品亚洲 | 91精品国产品国语在线不卡 | 欧美日韩精品一区二区三区 | 日本老太做爰xx | 中文字幕在线欧美 | 精品九九视频 | 亚洲好视频| 国产真实乱人偷精品 | 亚洲啪啪看看 | 欧美一级片免费看 | 韩国理论片在线看2828dy | www.草草草 | 成人欧美一区二区三区视频 | 亚洲精品入口一区二区在线观看 | 农村三级孕妇视频在线 | 久久99热成人精品国产 | 亚洲高清中文字幕一区二区三区 | 国产精品视频在线观看 | 久久爱影视i |