函式的使用遵循先定義後使用原則,只定義函式是不會被執行的,函式只有在被呼叫之後才會執行
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...