摘要:作者心葉時間此處長期維護一些對幫助快速使用的一些基礎語法,方便日常算法練習使用。控制語法語句可以跳出和的循環體。迭代器有兩個基本的方法和,這點也很類似字符串,列表或元組對象都可用方法創建迭代器對象。并在下一次執行方法時從當前位置繼續運行。
作者:心葉
時間:2018-04-23 22:18
此處長期維護一些對幫助快速使用python3的一些基礎語法,方便日常算法練習使用。
控制語法break 語句可以跳出 for 和 while 的循環體。如果你從 for 或 while 循環中終止,任何對應的循環 else 塊將不執行。
continue語句被用來告訴Python跳過當前循環塊中的剩余語句,然后繼續進行下一輪循環。
if條件控制if 表達式: 語句 if 表達式: 語句 elif 表達式: 語句 else: 語句while循環
Python中沒有do..while循環
while 判斷條件: 語句 else: 語句for語句
forrange()函數in : else:
這個函數不得不提,為什么滴?因為在實際用python練習算法題目時,這個函數真的用的太頻繁了。
print(list(range(5,9))) #[5, 6, 7, 8] for i in range(5):print(i,end=" ") #0 1 2 3 4 for i in range(1,3):print(i,end=" ") #1 2 for i in range(0, 10, 3):print(i,end=" ") #0 3 6 9 for i in range(-10, -100, -30):print(i,end=" ") #-10 -40 -70迭代器與生成器 迭代器
迭代器是什么東西?哈哈,有沒有想起java中集合的方法iterator()返回迭代器?是的,就是類似這個的存在。
迭代器有兩個基本的方法:iter() 和 next(),這點也很類似java(字符串,列表或元組對象都可用iter()方法創建迭代器對象)。
下面先簡單演示一下這二個方法的用法:
list=["中國","美國","俄羅斯","埃塞俄比亞"] #1.使用iter()方法獲取迭代器對象 it = iter(list) #2.使用next()方法依次獲取數據 print (next(it)) #打印結果是"中國" print (next(it)) #打印結果是"美國"
上面的例子應該已經明白這二個方法的用法了,使用iter()方法獲取迭代器對象,再用next(it)方法依次獲取集合的數據。
當然,到末尾了已經沒有可以取的數據的時候,再次調用會拋出異常,因此我們可以借助這個來實現迭代全部的數據,如下:
list=["中國","美國","俄羅斯","埃塞俄比亞"] it = iter(list) flag=True; while flag: try: print (next(it)) except StopIteration: print ("迭代結束了",end=" ") flag=False
除此之外,使用for可以實現類似的效果,如下:
list=["中國","美國","俄羅斯","埃塞俄比亞"] it = iter(list) for x in it: print (x, end=" ") #"中國","美國","俄羅斯","埃塞俄比亞"
因此,迭代全部的數據肯定不是迭代器存在的全部意義,更多的時候,你可以把它看成一個管理一列數據的對象,需要的時候告訴他一下,他就會給你下一個數據,不像for循環那樣一下子迭代結束,你可以在任何需要的時候獲取下一個數據。
記住這一個特點,特別是在設計算法或者模式的時候,會很有用的(當然,具體用好他從來都是經驗的事情,祝你好運)。
生成器TS或者ES6+有所了解的人應該都知道yield函數,基本上和這里的差不多用法。
在調用生成器運行的過程中,每次遇到 yield 時函數會暫停并保存當前所有的運行信息,返回yield的值。并在下一次執行 next()方法時從當前位置繼續運行。
上面的說法可能有點不好理解,ok,下面用大白話說一下:
生成器就是一個可以自定義一個生成迭代器對象函數的概念,生成的迭代器對象每次被詢問返回下一個數據的時候,自定義的如果返回,使用的就是yield函數,先看下下面的例子:
#定義一下可以生成迭代器對象的函數,類似上面例子中的iter()方法 def generatorDemo(array): index=0 while(index因此,你可以從二個角度來理解生成器:
1.一個和迭代器配合使用的迭代器對象生成方法;
2.更本質的理解:yield類似return,可以返回數據,不過不同的是,可以多次返回數據,調用一下返回一下,再次調用返回下一個yield定義返回數據的地方,就如同上面的例子,直到yield語句全部完畢再次調用會拋出錯誤。
如果你問我什么時候使用他,這具體看業務需求,就好比if語句一樣,他就在那里,需要用的時候可以記起來他,就夠了。
函數具體就不用多說明了,直接給出定義,然后說幾個重要的問題。
def 函數名(參數列表): 函數體參數傳遞在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。
函數中傳遞參數的時候,不可更改的對象和可以修改的對象在操作影響上是有很大區別的,用一句話說明的話就是:不可更改的對象類似傳遞的是值,可以修改的對象傳遞的是"指針",也就是引用傳遞,應該可以感受出來區別了吧。
python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象。
參數參數有四點,具體的很多和ES很像,不過在第一點上和ES區別很大,下面來簡單說明一下:
1.必需參數:就是你定義函數的時候,定義了幾個參數,調用的時候就要傳遞幾個,當然是普通定義方法,不包括下面的不定長參數,這點ES就很隨意了;
2.關鍵字參數:舉個例子,比如你定義了一個函數有二個參數age和name,函數名稱是getInfo,正常調用是依次傳遞參數:getInfo(7,"yelloxing"),當然你可以不這樣,你還可以這樣:
getInfo(name="yelloxing",age=7);3.默認參數:這個就和ES6差不多意思,舉例,定義函數時(沒有寫全,值寫函數頭部):
getInfo(age,name="默認名稱");4.不定長參數:定義方法:getInfo(age,name,*vartuple),這樣多傳遞的數據就全部在vartuple中,調用前它是一個空元組。
別的更多細節說明就到此為止,如果后續有必要再添加或多帶帶整理,此時的已經夠用了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41570.html
摘要:布爾值布爾值和布爾代數的表示完全一致,一個布爾值只有兩種值的數據類型可以通過內置的函數查詢,例如還可以用來判斷和的區別在于不會認為子類是一種父類類型。會認為子類是一種父類類型。基本功能是進行成員關系測試和刪除重復元素。 ...
摘要:該系列文章入門,編程基礎概念介紹變量,條件,函數,循環中的數據類型,,,,在中創建對象學一門編程語言正在變得越來越容易,只要念過高中甚至是初中小學,能熟練聊和懂得一點點軟件的人,入門一門編程語言都不在話下。 該系列文章: 《python入門,編程基礎概念介紹(變量,條件,函數,循環)》 《python中的數據類型(list,tuple,dict,set,None)》 《在python...
摘要:年月宣布支持時間延長到年。更詳細的發布列表參閱官網的版本號分為三段,形如。其中表示大版本號,一般當整體重寫,或出現不向后兼容的改變時,增加表示功能更新,出現新功能時增加表示小的改動如修復了某個,只要有修改就增加。年公司正式發布。 < 返回索引頁 Python語言簡介 Python介紹及發展 介紹 Python 官方網站:https://www.python.org/, 大家可以到此處下...
摘要:勤學學習效率與效果取決于執行力。這一步學習的正確姿勢是在實踐操作中發掘問題,然后帶著問題找答案。拆分任務將目標分解成具體可執行的學習任務。勤學強大的執行力是學習的根本保障。分享復述檢驗學習成果,提高學習效果的最好方法。 showImg(https://segmentfault.com/img/bVbcPGZ?w=256&h=256); 前段時間和大家一起分享了一篇關于學習方法內容《大牛...
摘要:課程簡介簡明易懂的課程,不僅適用于那些有其它語言基礎的同學,對沒有編程經驗的同學也非常友好。建議遵守以下約定使用個空格來縮進永遠不要混用空格和制表符在函數之間空一行在類之間空兩行字典,列表,元組以及參數列表中,在后添加一個空格。 showImg(https://segmentfault.com/img/bVCldE); 課程簡介:簡明易懂的 Python3 課程,不僅適用于那些有其它語...
閱讀 550·2021-11-25 09:44
閱讀 2636·2021-11-24 09:39
閱讀 2305·2021-11-22 15:29
閱讀 3520·2021-11-15 11:37
閱讀 3379·2021-09-24 10:36
閱讀 2507·2021-09-04 16:41
閱讀 992·2021-09-03 10:28
閱讀 1833·2019-08-30 15:55