函式從某種角度來講也是一種控制流程,這種控制流程的特點在於函式更加的靈活。
//函式定義語法
//def 函式名 (形參) : 函式體
def my_abs(x):
if x >= 0:
return x
else:
return -x
def myprint():
print("今天你吃飯沒")
myprint()
今天你吃飯沒
定義函式時,需要確定函式名和引數的個數。也可以不傳入引數。
函式體內部可以用return隨時返回結果,函式執行完畢也沒有return語句時,自動return none。
函式可以同時返回多個值,但其實就是將多個返回值打包成為了乙個tuple。
函式呼叫有那種方式,直接呼叫和間接呼叫。
>>> n = abs //直接呼叫
>>> n(-2)
2>>> abs(-2) //間接呼叫
2
//命名關鍵字引數,作用限制關鍵字引數的名字。使用*進行分隔
def person(name, age, *, city, job):
print(name, age, city, job)
>>> person('jack', 24, city='beijing', job='engineer')
jack 24 beijing engineer
//如果函式定義中已經有了乙個可變引數,後面跟著的命名關鍵字引數就不再需要乙個特殊分隔符*了:
def person(name, age, *args, city, job):
print(name, age, args, city, job)
函式引數具有多種型別(從函式形參來看):位置引數、預設引數、可變引數、關鍵字引數、命名關鍵字引數、引數組合
//其中x便是位置引數,占有函式實參的位置
def power(x):
return x * x
//預設引數
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
//n=2,便為預設引數,預設引數可以簡化函式的呼叫
//.......python在進行定義時,預設引數的值已經被計算出來了,如果預設引數中的值被改變,下次呼叫時函式值已發生改變
//可變引數,傳入的引數是可變的
def fun(n, *args): #將多餘的資料打包成陣列
print(n)
print(args) # 未拆包
print(*args) # 進行拆包
fun(1,2,3,4)
輸出:1
(2, 3, 4)
2 3 4
//關鍵字引數 **kwargs,用於接收形參的命名引數
def fun(**kwargs): #打包
print(kwargs) #未拆包
print(*kwargs) # 進行拆包
fun(a=1, b=2)
輸出:a b
ES6系列二 函式
一 箭頭函式,就是函式的簡寫。如果只有乙個引數,可以省 如果只有乙個return,可以省 普通函式 function name 箭頭函式,去掉 function,加上 let show1 function let show2 show1 show2 let show4 function a let ...
python系列七 python函式
函式是帶名字的 塊,用於定義具體的工作 需要在程式中多次執行同一項任務時,你無須反覆編寫完成該任務的 而只需定義乙個執行該任務的函式,反覆呼叫 通過使用函式,程式的編寫,閱讀,測試和修復都將更容易 定義乙個簡單函式 def print user print hello!print user 說明 函...
python系列 2 函式
def hello name print hello name hello alice hello bob import random def getanswer answernumber if answernumber 1 return it is a certain elif answernum...