今日有點晚,上午去hilston開會 廣東省科學院&白俄羅斯科學院所長會議。。。學習了一個上午,簡直收穫良多。。下午又多問題處理。。。。網站又聚餐。。只能回來加加班處理一下今日的內容了(不堅持,又被遺忘了),仍是要堅持一下學習Python,否則真是忘記忘記再忘記,以後就不搞了。。。 今日咱們說函數: 1. 函數 從小學-初中常常說的x = y+1 ,x,y都是有因果關係的,咱們叫函數。今日咱們在編程說的函數有區別的。他是一個代碼的報裝,固然也有因果關係。你執行/調用有相關的結果。例如: def abc(): print("帥哥") ### def 是 define的縮寫,定義函數必須有的開頭; ### abc 是函數名字。。。方便調用。。。。其實能夠這裏理解 變量= xxxx ;同理 abc = 代碼;abc也是一個變量名字/函數名字。。。。 ### print("帥哥") 是代碼---叫函數體(能夠有N行) ### () 用來幹啥的?有參數 你能夠放。。沒有你能夠不放。。。 格式: def 函數名(參數): 函數體 就這樣的格式。。。。。。咱們說一下 參數。。。(可是不建議你們死機,只要知道位置參數就能夠了) def abc(a,b,c): print(a) print(b) print(c) ####這裏要說一下 調用 abc(1,2,3) 這樣個就是調用 def abc(a,b,c) ##a,b,c 叫位置參數 abc(1,2,3,) ##1,2,3 叫實參 參數還分:位置參數,默認參數,不定長參數。。。是否是有點蒙?仍是記得一種就能夠了。。其餘跟進本身積累慢慢來就能夠了。 不過咱們仍是要說一下: 1. 默認參數: def abc(a,b,c=5) print(a) print(b) print(c) abc(1,3) ##輸出 1,3,5 ###爲何不用3個實參,就能夠輸出5? 這就是默認參數的做用,注意:位置參數是固定的a,b 就是1,3 不可能 a=3,b=1 位置參數是死的。。 2. 不定長參數. def abc(*args): print(args) abc(1,3,4,5) ###輸出是 元組 tuple....如何抽取? def abc(*args): #print(args) for i in args: print(i) abc(1,3,4,5) ####看看區別,是否是一個個顯示的。。。 因此通常人,咱們不用*args,可是有時候迫於項目變化,預計到未知,仍是能夠這樣處理一下。。。 不長參數,還有一個就是 **kargs ;跟*args 有什麼區別,多一個*k def abc(**kargs): print(kargs) abc(a=1,b=2,c=3) ###你會發現他是一個字典。。。因此若是不知道將來發展用多少個參數,可是又要爲他作準備,開了一下字典這種吧,跟默認參數是否是有點像。。。。這樣直接在函數體作 添加嗎。。。。 ###################################################################################### 函數中的 return 仍是要說一下。。。 有些函數是不會有 return ,由於它不會 對返回值有處理,有想法。這裏咱們要說明一下,你不添加(默認 return是 None), 通常函數體執行完畢,若是你有對返回值有進一步處理,你就會定義,後面編碼時候有關聯。是否是很抽象? 舉例: def abc(a,b): if a>b: print("a>b") elif a<b: print("a<b") else: return 0 a=abc(1,1) if a = 0: print("samly71很是帥") else: print("ugy") ---------------------是否是不少判斷?複習一下吧,可是咱們這裏只要看 else : return 0 ,而後 samly71很是帥.... return 終止了函數的運行了,返回 0 到函數調用,a=0 了,而後你作一次判斷,我這裏例子很是簡單,往後你的項目用來就不簡單了。。。 ####################################################################################### 局部做用域; 所有做用域; def abc(): a= xxxx ##########a就是局部 做用域,他是沒法被外部 print(a)的。。。。 若是你是 a=xxxx def abc(): print(a) print(a) ##############a被print 2次。。。。 有些前輩會告訴你,若是你在第1個狀況,還想被外部調用 golbal a=xxxx 也是能夠的,可是合理會有很對風險,通常我做爲新人,基本不用。。。仍是老實一點好。。。。 ################################################# 函數嵌套: def a(): print("帥氣")
def b():
Print("是的,很是好")
a()編程
b() ##回車後。。。 「是的,很是好」 「帥氣」 ---------------爲何是這個順序? 1. 在b() 調用前,上面的都只是放在內存,沒有執行; 2. 在b 調用了 a 這時候才執行a的內容,因此他在後面。。。。 +++++++++++++++++++++++++++++++++++++++++++ 是否是內容多了一點,可是很是簡單,由於咱們用最簡單的例子,來搞掂你的疑惑,內容不用多,也不用難。 關鍵仍是知道這函數什麼,而後 函數就是用來 精簡你的 代碼的,重複的內容,就嘗試去定義 函數吧。。。。例如 print("samly71帥氣「) ##打印1000次。。。。你牛逼了 print print print ----------------1000次,回頭第1個炒你。。。 也許你想到 for i in range(1,1001): print("samly71帥氣「) -----------------確實有進步,可是若是 5000次呢?還有若是是你呢? number = input("打印的次數: ") content = input("輸出的內容: ") def print_content(number,content): number = int(number) ##py2 python3 對input的類型是不同的。。 for i in range(1,number+1): print(content) print(number,content) -----------------是否是,以爲比以前好多了?是的,需求對新人來講應該不斷去消化,對本身提要求。。。