函式是帶名字的**塊。
要執行函式定義的特定任務,可呼叫該函式。
需要在程式中多次執行同一任務時,你無需反覆編寫完成該任務的**,而只需要呼叫執行該任務的函式,讓python執行其中的**。
你將發現,通過使用函式,程式的編寫、閱讀、測試和修復都將更容易。
1、定義函式
def 定義的
函式名稱(引數):
函式內容
(return)
由def引出函式名稱,括號裡加入相應的引數,以冒號結束定義。
函式內容通過縮排進行表達。
2、函式的返回值
函式返回值有如下三種情況:
①沒有返回值:
#view code1)不寫return
deffunc():
print('
123')#
2)只寫return:後面沒有東西,結束乙個函式。其返回值為『none』
deffunc1():
return
#返回值為none
②返回乙個值:
#view code1)可以返回任何資料型別
deffunc():
return
'123
'def
func1():
return[123]
deffunc2():
return(1,2,3)
deffunc3():
return
#2)只要返回,就可以收到
deffunc4():
return'你好
'#返回值: 你好
#3)有多個return,返回第乙個return的值d
deffunc5():
return 1
return
'不是1
' 返回值: 1
③返回多個值
#view code1)多個返回值用多個變數接收,有多少返回值就用多少變數接收;
deffunc():
return 1,2,3a,b,c =func()
print(a,b,c) #
返回值: 1 2 3
#2)多個返回值用乙個變數接收,接收值為乙個元組
deffunc1():
return 1,2,3a=func()
print(a) #
返回值: (1, 2, 3)
3.多個引數傳遞情況
站在實參的角度上:
按照位置傳參
按照關鍵字傳參
混著用可以:但是 必須先按照位置傳參,再按照關鍵字傳引數
不能給同乙個變數傳多個值
站在形參的角度上
位置引數:必須傳,且有幾個引數就傳幾個值
預設引數: 可以不傳,如果不傳就是用預設的引數,如果傳了就用傳的
只有呼叫函式的時候
按照位置傳 : 直接寫引數的值
按照關鍵字: 關鍵字 = 值
定義函式的時候:
位置引數 : 直接定義引數
預設引數,關鍵字引數 :引數名 = '預設的值'
動態引數 : 可以接受任意多個引數
引數名之前加*,習慣引數名args,
引數名之前加**,習慣引數名kwargs
順序:位置引數,*args,預設引數,**kwargs
1*argsdef func(*args): #
形參角度上:給變數加上*,就是組合所有傳來的值
2print(args) #
將值分別列印出來
3 l = [1,2,3,4,5]
4 func(*l) #
返回值為(1,2,3,4,5)56
7#站在實參的角度上,給乙個序列加上*,就是將這個序列按序打散開,傳給形參
1**kwargsdef func(**kwargs): 形參角度上:給變數加上**,就是組合所有傳來的值
2print
(kwargs)
3 d =
4 func(**d) #
返回值:56
7#實參出啊如的是打散的字典,通過函式呼叫,最終返回原字典
def qqxing(l=): #定義函式裡有乙個預設引數l你好'
)
(l)
qqxing()
#返回值: ['你好']
qqxing()
#返回值:['你好', '你好']
#預設引數隨著函式的不斷呼叫,會儲存先前的資料,從而偏離需求
解決方案:
def qqxing(l=none):
ifnot
l: l =
else
: l =l'你好
(l)qqxing()
qqxing(l = [1,2,3,4,5])
qqxing()
python之路 初識函式
f x x 1y x 1 函式是對功能或者動作的封裝 def 函式名 函式體呼叫 函式名 def play print 今天我想打籃球 print 今天我想玩遊戲 print 今天我想彈鋼琴 print 今天我想跳舞 play return 返回 1.當程式沒寫過return,不返回任何結果.如果你...
Python學習之路 初識Python
python的創始人是吉多 範羅蘇姆 guido van rossum 在中國被親切地稱為 龜叔 荷蘭人。他是一位數學家,同時也傾向於做計算機的工作,熱衷於程式設計。guido曾使用過pascal c fortran等,這些語言的設計原則是讓機器能更快地執行。以c語言為例,用c語言實現乙個功能需要編...
Python學習之路 一(初識Python)
python是如今比較熱門的一門計算機程式語言,因為我需要python,所有我將把我的自學筆記上傳給予分享,同時我也列出了自己學習的資源,希望我們逐漸完善,不斷進步!第一章 初識python 1.概述 python是一種物件導向的解釋型計算機程式語言,由荷蘭人guido van rossum 吉多 ...