python學習筆記(函式)

2021-09-25 02:42:13 字數 4099 閱讀 5116

函式的使用遵循先定義後使用原則,只定義函式是不會被執行的,函式只有在被呼叫之後才會執行

python中的定義函式的格式:

def my_one/myone/myone():

內容1

my_one()

函式的引數和返回值

形參(形式引數):沒有具體值,只有佔位符

實參(實際引數):呼叫函式時輸入的值

返回值:函式執行完返回的執行結果(這個是可選的),一般是使用return返回結果,如沒有返回值,使用return none表示函式結束

函式一旦執行到return,則函式立即結束,如函式無return關鍵字,預設返回none

#九九乘法表
def jj():

for i in range(1, 10):

for j in range(1, i + 1):

print(j * i, end=" ")

print()

return none

jj()

巢狀函式形式的九九乘法表

def printline(line_num):

'''line_num:行號

列印九九乘法表

:return:

'''for i in range(1, line_num + 1):

print(line_num * i, end = " ")

print()

def jj():

for j in range(1, 10):

printline(j)

return none

jj()

引數詳解:

普通引數/位置引數:要求傳參時必須一對一

預設引數:可以不一一對應,但是預設引數必須有值的存在。在你傳參時,如給預設引數不傳值,則計入函式,如傳值,則按當前傳值計算

關鍵字引數:可以使引數不需要位置的控制,但是函式名不能寫錯

收集引數

### 函式(**的一種組織形式,乙個函式一般完成一項特定的功能,函式使用(函式需要先定義在使用該函式))

當定義乙個函式時,在不呼叫的時候時不會自動執行該定義函式的

1.def關鍵字後跟乙個空格。2,函式名自己定義,起名需要遵循命名規則,約定成俗,大駝峰命名只給類使用

3,後面的括號和冒號不能省,括號內可以有引數。4,函式內的所有**需要縮排

函式的引數和返回值:引數(負責給函式傳遞一些必要的資料或資訊)返回值(函式的執行結果)

引數分為形參(形式引數)和實參(實際引數)

形參:在函式定義的時候用到的引數,沒有具體的值,只是乙個展位的符號,成為形參

實參:在呼叫函式的時候輸入的值。在實參傳入時,會將形參覆蓋

返回值:使用return關鍵字,返回的結果。如果沒有return,缺省會返回乙個

###引數詳情(參考資料

引數分類(普通引數,預設引數,關鍵字引數,收集引數)

普通引數:定義是直接定義變數名,呼叫的時候直接把變數或者值放入指定的位置。只能按照位置傳遞,位置出錯,就會容易出錯

預設引數:形參帶有的預設值,呼叫的時候,如果沒有對應的賦值,則使用預設值

關鍵字引數:

語法def func(p1=v1,...)

func body

呼叫函式:

func(p1=value1,....)

#比較麻煩,但是也有好處

1,不宜混亂,一般實參和形參只是按照位置一一對應即可,容易出錯

2,使用關鍵字引數,可以不考慮引數位置

###收集引數

把沒有位置,不能和定義時的引數位置相對應的引數,放入乙個特定的資料結構中

語法:def func(*args):

func body

按照list 使用方式訪問args得到的傳入引數

呼叫:func(p1, p2, ....)

* 引數名args不是必須這麼寫,但是我們推薦直接使用args.(約定成熟)。引數的args前必須要有 * 。

收集引數可以和其他引數共存

例:def stu(*args):

pass

stu("mercenary", 1111111111, "中文", "sdasdqwas")

####收集引數之關鍵字收集引數(把關鍵字引數按照字典的格式存入收集引數)

語法:def func(**kwargs):

func_body

呼叫func(p1=v1, ....)

1,kwargs一般約定成熟。2,呼叫的時候,把多餘的關鍵字引數放入kwargs。3,訪問kwargs需要按照字典的格式訪問

例:def stu(**kwargs):

pass

stu(name="mercenary", age=121231231, ........)

stu(name="中文")

###收集引數混合呼叫的順序問題

1,收集引數,關鍵字引數,普通引數可以混合使用。2,規則,普通引數和關鍵字引數優先。

3,定義的時候一般找普通引數,關鍵字引數,收集引數tuple,收集引數dict 。

例:

def stu(name, age, *args, hoby="中文", **kwargs):

print("hellow man")

print(" i'm , my age is ".format(name, age))

if hoby=="中文":

print("no, not me")

else:

print("yes , is".format(hoby))

print("*"*10)

for i in args:

print(i)

print("$"*10)

for k,v in kwargs:

print(k, "---->", v)

name = "sac"

age = 12

stu(name, age)

stu(name, age, "值啊", hoby="引文")

收集引數的解包問題:(把引數放入list或者字典中,直接把list/dict中的值放入收集引數中)

例:

def stu(*args):

n = 0

for i in args:

print(type(i))

print(n)

n+=1

print(i)

l = ["ssssasda", 12, 34, "akjsdk"]

stu(*l)

'''# (*)星號時必須的 #'''

###同理,dict型別收集引數一樣可以解包,但是對dictionary解包需要兩個星號(**kwargs)

返回值:1,函式和過程的區別(有無返回值)。2,需要用return顯示返回內容。3,如果沒有值返回。預設返回none

4,無論有無返回值,最後都要以return結束

文件的寫法:1,在函式內部開始的第一行使用三個字元竄定義符。2,一般具有特定格式。

文件檢視:(使用help函式,形如help(func)).使用__doc__.參看案例

例:

def stu(name, age):

''':param name:表示名稱

:param age: 表示年齡

:return:

'''pass

print(help(stu))

print("*"*20)

print(stu.__doc__)

結果:

help on function stu in module __main__:

stu(name, age)

:param name:表示名稱

:param age: 表示年齡

:return:

none

********************

:param name:表示名稱

:param age: 表示年齡

:return:

Python學習筆記 函式

1.基本呼叫 python 中的函式使用關鍵字 def 來建立乙個函式,正如其他語言中的函式一樣,有函式名,引數,以及返回值。函式的引數不用指定型別,return 可以在任何地方出現,表示函式結束,如果沒有返回內容則預設返回值為none。乙個簡單的無引數,無返回值的hello world def h...

python學習筆記 函式

def fun object,param1,param2 none print type object tuple,呼叫時預設的所有實參全部轉化為tuple傳遞給object fun 1,2,3,4,5,6,7,param1 8 指定param1的呼叫實參,param2引數呼叫預設值函式內可訪問全域...

python學習筆記 函式

建立函式 def myfirstfuntion 函式具體內容 呼叫函式 直接輸入函式面名及引數。def myfirstfnuncyion syntaxerror invalid syntax def myfirstfunction print 我愛你,qt syntaxerror eol while...