#四類引數
·普通引數
·預設引數
·關鍵字引數
·收集引數
#普通引數
defstu
(name, age, addr)
:print
("i am student!"
)print
("我叫,今年,我住"
.format
(name, age, addr)
)
stu(
"lisi",24
," 我家"
)
i am student!
我叫lisi,今年24,我住 我家
#關鍵字引數
defstu
(name =
"no name"
, age =
18, addr =
"家裡"):
print
("i am student!"
)print
("我叫,今年,我住"
.format
(name, age, addr)
)
stu(name =
"lisi"
, addr =
"我家"
, age =
24)
i am student!
我叫lisi,今年24,我住我家
#收集引數
·把沒有位置,不能和定義時的引數未知相對應的引數,放入乙個特定的資料結構中
·語法:
def func(*args):
func body
按照list使用方式訪問args得到傳入的引數
呼叫:func(p1, p2, p3, …)
#收集引數示例
#函式模擬乙個學生進行自我介紹,但是具體內容不知道
#args看做乙個列表list
defstu
(*args)
:pass
#用來佔位置
stu(
"liziqiiang",18
,"zhangjiakou"
,"hagongda"
)stu(
"liuyahui"
)
#收集引數示例
#函式模擬乙個學生進行自我介紹,但是具體內容不知道
#args看做乙個列表list
defstu
(*args)
:print()
print
(type
(args)
)for item in args:
print
(item)
stu(
"liziqiiang",18
,"zhangjiakou"
,"hagongda"
)stu(
"liuyahui"
)
liziqiiang
18zhangjiakou
hagongda
liuyahui
stu(
)#即使沒有引數也可以執行,說明收集引數可以不帶任何實參呼叫,此時收集引數為空tuple,如果函式呼叫時,有關鍵字引數,則會出現問題
#收集引數之關鍵字收集引數
· 把關鍵字引數按字典格式存入收集引數
· 語法:def func( **kwargs ):
func_body
#呼叫
func(p1=v1,p2=v2,p3=v3,...)
·kwargs一般約定俗成
·呼叫的時候,吧多餘的關鍵字引數放入kwargs
·訪問kwargs需要按字典格式訪問
這個的好處在於想寫幾個引數就寫幾個引數
#收集引數之關鍵字收集引數
#呼叫的時候需要使用關鍵字引數呼叫
defstu
(**kwargs)
:pass
stu(name =
"liziiqiang"
, age =
18, addr =
"河北張家口"
)stu(name =
"liuyahui"
)
#收集引數之關鍵字收集引數
#呼叫的時候需要使用關鍵字引數呼叫
defstu
(**kwargs)
:print()
print
(type
(kwargs)
)#在函式體對引數kwargs的使用不用帶星號
for i,j in kwargs.items():
print
(i," = "
, j)
stu(name =
"liziiqiang"
, age =
18, addr =
"河北張家口"
)stu(name =
"liuyahui"
)
name = liziiqiang
age = 18
addr = 河北張家口
name = liuyahui
#收集引數混合使用的順序問題
· 收集引數,關鍵字引數,普通引數可以混合使用
· 使用規則就是,普通引數和關鍵字引數優先
· 定義的時候一般找普通引數,關鍵字引數,收集引數tuple,收集引數dict
#示例
#模擬乙個學生的自我介紹
defstu
(name, age, hobby =
"沒有"
,*args,
**kwargs)
:print()
print
("我叫,今年歲"
.format
(name,age)
)if hobby ==
"沒有"
:print
("對不起,我沒有愛好!"
)else
:print
("我的愛好是"
.format
(hobby)
)print
("*"*20
)for i in args:
# 列表或者元祖的意思
print
(i)print
("*"*30
)for i,j in kwargs.items():
#字典的意思
print
(i," = "
, j)
stu(
"liziqiang",19
)stu(
"liziqiang",19
,"看電影"
)stu(
"liziqiang",19
,"看電影"
,"看書"
,"上網"
, hobby2 =
"吃飯"
, hobby3 =
"睡覺"
)stu(
"liziqiang",19
,"看電影"
,"看書"
,"上網"
, hobby2 =
"吃飯"
, hobby3 =
"睡覺"
)
我叫liziqiang,今年19歲
對不起,我沒有愛好!
********************
******************************
我叫liziqiang,今年19歲
我的愛好是看電影
********************
******************************
我叫liziqiang,今年19歲
我的愛好是看電影
********************
看書上網
******************************
hobby2 = 吃飯
hobby3 = 睡覺
我叫liziqiang,今年19歲
我的愛好是看電影
********************
看書上網
******************************
hobby2 = 吃飯
hobby3 = 睡覺
#收集引數的解包問題
defstu
(*args)
: n =
0for i in args:
print
(type
(args)
)print
(n) n +=
1print
(i)l =
["liziiqang",23
,13,34
]stu(l)
#原本的想法是乙個乙個大列印出來,但是現在是一塊出來,此時,args的表示形式是字典內乙個list型別的元素
#此時的呼叫,我們需要乙個解包符號,就是在呼叫的時候前面加乙個星號
stu(
*l)
0
['liziiqang', 23, 13, 34]
0liziiqang123
213334
#對dict型別進行解包,需要加兩個星號
#函式文件,作用是對當前函式提供使用相關的參考資訊,寫法:在函式內部開始的第一行使用三字串定義符,一般具有特定格式。文件檢視:使用help函式,形如help(fun),使用__doc__,形如fun.doc
Python菜鳥學習第五課
第三章 字串方法 3.1find可以在乙個較長的字串中查詢子字串,它返回子串所在位置的最左端索引,如果沒有找到則返回 1 title monty python s flying cirus title.find monty title.find python title.find zirquss 1...
學習Python之旅 第五課
1.字典 字典屬於另外一種可變容器,且可以儲存任意型別物件。2.建立並訪問字典 dic print dic print dic 1 print dic asd 2 2sadf3.修改字典 dic print dic dic asd 123 print dic 4.新增元素 dic 動態的向字典中新增...
Linux學習第五課
vim編輯器 vi編輯器的提公升版 1 使用簡單 2 使用範圍廣 ctrl shift 增大字型 ctrl 縮小字型 三種模式 esc a,i,o 參考記事本 2 命令模式 複製 剪下 貼上 esc 搜尋 3 末行模式 儲存 退出 設定編 輯器環境設定 w 儲存 q 退出 wq 儲存並退出 wq 強...