一、定義函式
1.如何自定義函式(return 返回值和引數不是必須要寫的)
#語法def
函式名(引數1,引數2,引數3,...):
'''注釋
'''函式體
return
返回的值
#函式名要能反映其意義
2.函式的使用原則:先定義,在呼叫 (******)
deffoo():
print('
from foo')
bar()
defbar():
print('
from bar')
foo()
#會報錯嗎? 不會
#結論:函式的使用,必須遵循原則:先定義,後呼叫我們在使用函式時,一定要明確地區分定義階段和呼叫階段,會先走定義階段的foo和bar,等到呼叫foo函式的時候,記憶體中已經存在bar函式了
3.函式在定義階段
只檢測語法,不執行**也就說,語法錯誤在函式定義階段就會檢測出來,而**的邏輯錯誤只有在執行時才會知道
4.定義函式的三種形式
#1、無參:應用場景僅僅只是執行一些操作,比如與使用者互動,列印
#2、有參:需要根據外部傳進來的引數,才能執行相應的邏輯,比如統計長度,求最大值最小值
#3、空函式:設計**結構
二、呼叫函式
1.函式返回值
return:函式內可以有多個return,但是只能執行一次return
執行return函式就立刻結束,並且return後的值當做本次呼叫的結果返回
return返回值沒有型別限制
無return->預設返回nonereturn 1個值->返回1個值
return 逗號分隔多個值->返回乙個元組
2.函式呼叫的三種形式
1語句形式:foo()2 表示式形式:3*len('
hello')
3 當中另外乙個函式的引數:range(len('
hello
'))
三、函式的引數
1.具體應用 (******)重點
1.位置引數:按照從左往右的順序依次定義的引數位置形參:必須被傳值,多乙個少乙個都不行
位置實參:與形參一一對應傳值
2.關鍵字引數:按照key=value的形式定義的實參
特點:指名道姓的給形參傳值,不再依賴位置注意:1.關鍵字實參必須在位置實參的後面。2.不能為同乙個引數賦值多次
3.預設引數:在函式定義階段,就已經為形參賦值了
特點:定義階段已經有值意味著呼叫階段可以不用傳值
位置引數通常用於經常變化的引數,而預設引數指的是大多數情況下都一樣的注意:1.預設引數必須放在位置形參的後面 2.預設引數的值只在定義時被賦值一次 3.預設引數的值通常應該是不可變型別
4.可變長引數:(分在形參使用和在實參使用)
在呼叫函式時,實參值的個數不固定
實參的形式有:位置實參,關鍵字實參在形參中使用的解決方案:用 *,**接收多餘的實參 (*接收多餘的位置實參,**接收多餘的關鍵字實參)
在實參中使用的解決方案:用*,**打散 (*打散元組,**打散字典,然後把打散的值傳給一一傳給形參)
了解:命名關鍵字引數
*後定義的引數,必須被傳值(有預設值的除外),且必須按照關鍵字實參key=value的形式傳遞
def foo(x,y,*,m,n)
(x,y)
(m,n)
foo(1,2,n=4,m=3) #
如果不用key=value形式傳參,那麼傳的值都會被*接收
Python基礎 函式知識複習
1.1 必需引數 傳統的函式定義方法 coding utf 8 usr bin python 必需引數 def fun value print value fun 12345 1.2 關鍵字引數 例如函式呼叫 fun age 18,name fadi python還真的是腦洞 coding utf ...
c 基礎複習 函式提高
c 中,函式的形參列表中的形參是可以由預設值的 include using namespace std 如果我們傳入資料,就用自己的資料,否則使用預設引數 返回值型別 函式名 形參 預設值 int fun int a,int b 10,int c 20 z注意事項 1 如果某個位置已經有了預設引數,...
AS函式複習
actionscript 3.0 中有兩種函式型別 方法 和函式閉包 方法 如果您將函式定義為類定義的一部分或者將它附加到物件的例項,則該函式稱為方法。函式閉包 如果您以其它任何方式定義函式,則該函式稱為函式閉包 隨機函式 var randomnumber number math.random 函式...