Python系統學習第五課

2021-09-06 20:56:53 字數 4925 閱讀 8582

#四類引數

·普通引數

·預設引數

·關鍵字引數

·收集引數

#普通引數

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 強...