日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

迭代求斐波那契数列python_python中的迭代器(以斐波那契数列为主讲解)

發布時間:2023/12/15 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 迭代求斐波那契数列python_python中的迭代器(以斐波那契数列为主讲解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡要引入:

迭代一詞,我們再熟悉不過了,它經常出現在算法中,在數學中也有很多的使用,比如一個算法經過多少次的迭代,執行的效率有了很大的提高……

迭代的意思類似于循環,每一次重復的過程被稱為一次迭代的過程,而每一次迭代出現的結果將作為下一次迭代的初始值。

迭代器:提供迭代方法的容器。

如: ? ?序列(列表、元祖、字符串),字典

練習1#for循環來進行迭代In?[2]:?for?i?in?"Python":

...:?????print(i)

...:

P

y

t

h

o

n

注:字符串是一個容器,也是一個迭代器,for語句能使得迭代器的功能以輸出到控制臺的方式實現,每一次從此容器中依次取出一個數據,這就是迭代操作。(字典、文件同樣支持迭代)

練習2In?[2]:?dic1?=?{'name':'xiaodong','sex':'male','love_language':'Python','love_quotes':'Life?is?short.?You?need?Python.'}

In?[3]:?for?dic?in?dic1:

...:?????print('%s?----?%s'%(dic,?dic1[dic]))#%s字符串格式化的一種

...:

name?----?xiaodong

sex?----?male

love_language?----?Python

love_quotes?----?Life?is?short.?You?need?Python.python中關于迭代器的2個BIF(Built-in Functions,內置函數)iter() ?-----調用iter()得到與之對應的迭代器

next() ?-----調用此方法,迭代器返回下一個值

StopIteration異常:迭代器沒有值返回時,Python會拋出此異常,結束操作

練習3In?[4]:?str1?=?"Python"In?[5]:?iter1?=?iter(str1)

In?[6]:?next(iter1)

Out[6]:?'P'In?[7]:?next(iter1)

Out[7]:?'y'In?[8]:?next(iter1)

Out[8]:?'t'In?[9]:?next(iter1)

Out[9]:?'h'In?[10]:?next(iter1)

Out[10]:?'o'In?[11]:?next(iter1)

Out[11]:?'n'#最后拋出異常結束如下所示:In?[12]:?next(iter1)

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

StopIteration?????????????????????????????Traceback?(most?recent?call?last)

?in?()

---->?1?next(iter1)

StopIteration:

原理如下:In?[13]:?str1?=?"Python"In?[14]:?iter1?=?iter(str1)

In?[15]:?while?True:

...:?????try:

...:?????????each?=?next(iter1)

...:?????except?StopIteration:

...:?????????break

...:?????print(each)

...:

P

y

t

h

o

n方法實現__iter()__

__next()__

迭代器必須實現__iter__()的方法,因為通過此方法才能返回迭代器本身。除此之外,還需要重寫__next__()方法,用此方法可以使得迭代器按照我們自己定義的規則進行迭代。

斐波那契數列In?[1]:?class?Fibonacci:

...:?????def?__init__(self,n?=?10):#n=10是一個范圍

...:?????????self.a?=?0

...:?????????self.b?=?1

...:?????????self.n?=?n

...:?????def?__iter__(self):??#返回迭代器本身

...:?????????return?self

...:?????def?__next__(self):

...:?????????self.a,?self.b?=?self.b,?self.a?+?self.b

...:?????????if?self.a?>?self.n:??#判斷是否還有下一個輸出,如果沒有則拋出異常

...:?????????????raise?StopIteration

...:?????????return?self.a

In?[2]:?fibonaccis?=?Fibonacci()#類的實例化In?[3]:?for?fibonacci?in?fibonaccis:??#迭代生成此數列

...:?????print(fibonacci,end='?')?#end='?'可以理解為循環打印時不換行,以空格分開

...:

1?1?2?3?5?8

作者:日堯_dong

鏈接:https://www.jianshu.com/p/fd4a3348ea8c

總結

以上是生活随笔為你收集整理的迭代求斐波那契数列python_python中的迭代器(以斐波那契数列为主讲解)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。