程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

讓python飛:形象理解python for in循環、嵌套循環、函數、棧內存、形參

編輯:Python


Day05兵馬俑求助佛印
話說秦皇下葬時,有大批兵馬俑陪葬於地下。其中有個跪傭趁守衛不備,逃了出來。他跪著逃了一路,最後來到了大熊山熊山寺
小傭來到寺前,見寺門上方赫然掛著 ’FOR IN 寺‘三個大字(for … in循環:)。小傭上前敲門,有了圓頭方身的和尚出來開門小傭把事情來龍去脈告知,請求師傅收留。和尚本著慈悲之心,答應了下來。他告訴小傭,他法號“佛印”,是這個寺裡唯一的和尚兼住持(格式:for 變量 in 容器對象:語句塊)。
寺裡有一些轉籠,佛印可以把一排東西一件一件的偷投進轉籠中,最後會生產出不同的產品(執行流程:
遇到for關鍵字將容器對象中的第一個元素給到變量,執行語句塊,
再將容器對象中的第二個元素給到變量,執行語句塊,
以此類推…
直到容器對象中最後一個元素也被獲取過了,執行完語句塊,整個for…in循環就結束了)。
佛印把小傭領進寺門,第一個庭院分左右兩個小庭院。左邊有一輛兩人座的小車在轉圈圈(格式:range([start],end,[step])),車頭是一個橙子(range對象:),他可以把佛印的東西帶進轉籠裡。車尾是燕尾形狀的,不能放東西(特點:含頭不含尾 --> [start,end))。其實它裡面包含很多東西,一般看不到(1).通過執行完畢range()函數返回給程序一個range對象,此對象是一個惰性序列對象(顯示不清晰),可以使用遍歷的思想去查看其內容,也可以將其轉換為list、tuple等類型再進行運算;),除非用索引機可以(2).它仍然是一個容器對象,有容量/長度,有索引(index),可以通過變量名配合下標訪問容器中的元素)。
右邊小庭院放著五個轉籠(for…in…循環配合容器對象(str、list、tuple、dict、set)使用),第一個轉籠上有個很大的紙符(#配合list&str類型使用:lt = [10,20,30,40,50] for i in lt:
print(i,end=" ")),符上排列著各種各樣的東西,第二個轉籠上有個很大的表,表上同樣排列著很多東西。第三個轉籠上有個牛肉丸子串,第四個轉籠上有個字典(#配合dict對象使用:dic1 = {‘name’:‘韓梅梅’,‘age’:25,‘height’:165.0}#通過鍵找到值
for k in dic1: print(k + “–>” + str(dic1.get(k)))),第五個轉籠上有個大餅。字典上還有個粉紅小豬(items),它能將軍師和隨從分開,讓他們分別列隊排列(items():
此函數屬於dict中獨有的函數,一旦執行完畢,返回給程序一個dict_items類型的對象(容器類型,有容量),可以配合forin循環一下子得到key,value…
di = dic1.items()
print(di,type(di),len(di))
—dict_items([(‘name’, ‘韓梅梅’), (‘age’, 25), (‘height’, 165.0)])
for k,v in dic1.items():
print(“k=”,k,“v=”,v)
k= name v= 韓梅梅)。佛印告訴小傭,這些轉籠都能工作
繼續向上走,進入第二個庭院。庭院內擺放著四只碩大的轉籠,籠內還有只小轉籠(嵌套循環:循環中再定義循環,就是嵌套循環;)。大轉籠上有數字,就像鐘表一樣,每轉一個數字,裡面的小轉籠就賺一圈(總結:1).外層循環執行一次,內層循環全部執行一遍。2).如果外層循環需要執行m次,內存循環需要執行n次,那麼整個嵌套循環一共會執行m * n次)。有個大轉籠上貼著東海白胡子老頭的照片,裡面小轉籠上貼著佛印的照片(while 中嵌套 for…in)。有個大轉籠上貼著東海白胡子老頭,裡面也貼著白胡子老頭(while 中嵌套 while)。有個大轉籠上貼著佛印,裡面小轉籠貼著白胡子老頭(forin 中嵌套 while)。還有個大轉籠小轉籠都貼著佛印的照片(forin 中嵌套 forin 多)。
繼續往上走,是第三個庭院。庭院左邊擺著若干個疊在一起的碩大的骰子。佛印告訴小傭,要想入寺,需經過考驗。將這一列骰子按點數從小到大排列好。從底部開始,每一次都只能將骰子和上方數字最小的骰子置換。如此循環往復,直至把所有骰子排列完畢即可。小傭順利完成了考驗(for… in 中嵌套 for … in)。
在庭院右邊,小傭發現了一只兩耳各系有紅色條帶(①.函數修飾符關鍵字def開頭)的獅子(函數:它是一段功能代碼,理解為一種功能行為,在內存中有空間區域,函數需要被調用才能執行(通過函數名來調用);。獅子額頭上刻有一只小駱駝(③.函數名:函數的名字(標識符一種,滿足規則和規范)),獅子嘴裡含有五顏六色的小球。獅子的肚皮上有個開口,開口處接有一個簸箕式樣的部件(②.函數返回值類型 有返回值(類型:int、float、str、list…)/沒有返回值)。佛印告訴小傭,這獅子名字叫函數。它嘴裡的小球,可以擰開用來放東西(④.形參列表:定義在小括號內(可能有形參,也可能沒有))。獅子把球吞下去後,在肚子裡進行加工(⑤.函數體:一段業務邏輯代碼),然後從肚子上的簸箕處產出你想要的東西(return關鍵字的作用:1).將需要返回的數據給到函數的調用處(調用者)。2).表示函數的結束。4).和return關鍵字在同一作用域,在其後面不要去定義任何的代碼,因為永遠不可能被執行到。5).return關鍵字後面也可以不定義任何的內容,它的作用僅僅意味著函數結束了…)。當然有時候,也產不出東西,這取決於獅子種類。有的獅子就沒有產出口,但他們會聽你的指令,幫你做事(有返回值(類型:int、float、str、list…)/沒有返回值)。
這時寺後面突然傳來一陣聲音,小獅子頭上的小駱駝變得明亮起來(函數被調用)。小獅子立刻從跑向寺後門。只見寺後面是個高台。台上有個貌似打擂用的木架(棧內存:
特點:滿足先進後出,分為棧頂和棧底兩部分)。木架頂有一只一模一樣的小獅子,他在呼喚伙伴。它看到寺裡的小獅子跑出來,立刻垂直降到木架底部(壓棧),然後只見寺裡的小獅子直接升到木架頂部(進棧),不一會功夫,就從木架頂部飛離(出棧),落到地面上。二木架底部的小獅子又升上去,繼續在木架頂部工作(升棧)。
小傭被眼前的一切驚呆了,他問佛印師傅,這是只什麼樣的獅子?佛印師傅告訴小傭。這裡一共有四種獅子(自定義函數的四種定義場景:)。第一種獅子嘴裡不含球,沒有產出口,但他們能聽人命令,言聽計從(1).無參無返回值)。第二種獅子,嘴裡不含球,但是有產出口。他們比較默默無聞,吃的是草,擠的是奶(2).無參有返回值)。第三種獅子,嘴裡含有球,但沒有產出口(3).有參無返回值)。第四種獅子就是剛才看到的那一種,嘴裡含有球,而且還有產出口(4).有參有返回值)。
兵馬傭非常驚奇,原來世界上竟然還有如此神奇的生物。同時,他對獅子嘴裡的五顏六色球產生了濃厚的興趣。佛印師傅告訴他,這 獅子嘴裡的球啊,也分四種(形參列表的多種定義情況)。第一種球裡面本來就有東西,你可以選擇放自己的東西進去,也可以不放。(默認參數的使用:代碼如下:
def func1(name=“張三”,age=18,height=175.5):
print(name,age,height)
#調用自定義函數(不傳遞參數):會使用默認參數參與之後的運算
func1()
#調用自定義函數(傳遞部分參數):傳遞的部分使用傳遞內容,其余部分使用默認參數參與運算
func1(“李四”))
第二種球呢就是你得根據球的排列按順序把東西一樣一樣的放進去。(一般參數的使用:
代碼如下:
def func2(name,age,address):
print(name,age,address)
#調用自定義函數:必須傳遞參數,而且位置和個數都要對的上
func2(“李雷”,21,“北京”))第三種球不用按順序,但是你得把你所放的東西顏色得和球的顏色保持一致。(關鍵字參數的使用:好處:不用記住每個變量的位置
代碼如下:
def func3(name,age,address):
print(name,age,address)
#體現在調用自定義函數上:傳遞類型鍵值對的組合
func3(address=“上海”,name=“韓梅梅”,age=20))最後一種球有兩個,左邊的球上有一個小精靈,裡面有個牛肉丸串,上面可以放各種東西。右邊球上有兩個小精靈,裡面有個字典,字典上可以放東西。(可變參數的使用:在定義一項功能時,對於參數層面(到底幾個不確定),此時可以使用可變參數來實現
參數解釋:
*args:接受0~無窮多個單值,存入到一個元祖中返回
**kwargs:接受0~無窮多個鍵值對組合,存入到一個字典中返回
代碼如下:
def func4(*args,**kwargs):
print(args,type(args))
print(kwargs,type(kwargs))
func4()
func1(0,100,3.14,True,“abcd”,[10,20,30],name=“班長”,age=25))


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved