您好,登錄后才能下訂單哦!
今日有點晚,上午去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)
-----------------是不是,覺得比之前好多了?是的,需求對新人來說應該不斷去消化,對自己提要求。。。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。