定義: 函式是指將一組語句的集合通過乙個名字(函式名)封裝起來,要想執行這個函式,只需呼叫其函式名即可
特性:
減少重複**
使程式變的可擴充套件
使程式變得易維護
>>
>
deffuncname
(v):
#定義函式名,形參..
.print
(v)...
>>
> funcname(
"hello"
)#呼叫函式
hello
正常情況下,給函式傳引數要按順序,不想按順序就可以用關鍵引數,只需指定引數名即可,但記住乙個要求就是,關鍵引數必須放在位置引數之後。
>>
>
deffunca
(x,y,z)
:# 定義函式..
.return x*y-z..
.>>
> funca(1,
2,3)
# 按順序匹配-1
>>
> funca(
1,z=
3,y=2)
# 按變數名匹配 關鍵引數必須放在位置引數之後
-1
可變引數舉例
非固定引數
若你的函式在定義時不確定使用者想傳入多少個引數,就可以使用非固定引數*args
>>
>
defstu_register
(name,age,
*args)
:# *args 會把多傳入的引數變成乙個元組形式..
.print
(name,age,args)..
.>>
> stu_register(
"alex",22
)alex 22()
>>
> stu_register(
"jack",32
,"cn"
,"python"
)jack 32
('cn'
,'python'
)
還可以有乙個**kwargs
>>
>
defstu_register
(name,age,
*args,
**kwargs)
:# *kwargs 會把多傳入的引數變成一 個dict形式..
.print
(name,age,args,kwargs)..
.>>
> stu_register(
"alex",22
)alex 22()
>>
> stu_register(
"jack",32
,"cn"
,"python"
,***=
"male"
,province=
"shandong"
)jack 32
('cn'
,'python'
)
總結:
按照從左到右的順序定義的引數
位置形參:必選引數
位置實參:按照位置給形參傳值
按照key=value的形式定義的實參,無需按照位置為形參傳值。 注意的問題:
①==關鍵字實參必須在位置實參右面==
②==對同乙個形參不能重複傳值==
形參在定義時就已經為其賦值,可以傳值也可以不傳值,經常需要變得引數定義成位置形參,變化較小的引數定義成預設引數(形參)。注意的問題:
①只在定義時賦值一次
②**預設引數的定義應該在位置形參右面**
③==預設引數通常應該定義成不可變型別==
可變長指的是實參值的個數不固定。 而實參有按位置和按關鍵字兩種形式定義,針對這兩種形式的可變長,形參對應有兩種解決方案來完整地存放它們,分別是*args,*kwargs
5、命名關鍵字引數:*後定義的引數,必須被傳值(有預設值的除外),且必須按照關鍵字實參的形式傳遞
>>
>
defno_return
(x):..
.print
(x)...
>>
> fun = no_return(10)
#呼叫函式,並賦值給fun變數
10>>
>
print
(fun)
#無返回值,直接返回none
none
>>
>
defreturn_value
(x,y):.
..return x+y..
.>>
> res = return_value(3,
4)#通過返回值,賦值給res
>>
>
print
(res)
7
>>
>
defyield_value
(x):..
.for i in
range
(x):..
. name =
yield i #yield i => 等價在呼叫一次next方法時,return i 其次 在呼叫send方法時,把值傳送給yield並賦值給name..
.print
("name is:%s"
% name)..
.>>
> yv = yield_value(5)
>>
> yv.send(
none)0
>>
> yv.send(
none
)name is
:none
1>>
> yv.send(
"hello"
)name is
:hello
2>>
> yv.send(
"world"
)name is
:world
3>>
> yv.send(1)
name is:1
4>>
> yv.send(1)
name is:1
traceback (most recent call last)
: file ""
, line 1,in
stopiteration
>>
> yv.send(2)
traceback (most recent call last)
: file ""
, line 1,in
stopiteration
08 python基礎學習 0412
知識點學習 1.list複習,tuple學習 list列表 一種資料型別,有序集合,可以任意新增刪除元素。tuple 的缺陷 當你定義乙個tuple時,在定義的時候,tuple 的元素就必須被確定下來。eg t 1,2 t 1,2 1.定義乙個空tuple tuple 2.定義只有乙個元素的tupl...
08 python 元組 字典 集合
4.遍歷字典 5.集合 元組基本介紹 python中,數值型別 int和float 字串str 元組tuple都是不可變型別。而列表list 字典dict 集合set是可變型別 可變物件中都儲存了三個資料 id 標識 type 型別 value 值 字典的作用和列表類似,都是用來儲存物件的容器 列表...
08 Python之記憶體管理
python中的記憶體管理,從淺層次來說,可以分為3個方面來講 1,引用計數 python中引用計數,為了跟蹤記憶體的物件 當建立物件的時候即被引用了,當物件不再被使用時,即某個物件的引用計數為0,它被垃圾 2,垃圾 機制 python可以不事先宣告變數型別而直接對變數進行賦值,垃圾 器會去檢查哪些...