Python基礎 函式(Day9)

2022-09-14 01:03:22 字數 4684 閱讀 4876

一、函式的定義

函式是從上到下依次執行,將函式名載入到記憶體,函式體放到乙個臨時儲存空間,見到函式名執行。
#

li=[1,2,2,4,6,7,4,5]

#def my_len():

#count=0

#for i in li:

#count+=1

#my_len()

二、函式的返回值

return

1.在函式中遇到return結束函式。

def

fun():

print(111)

return

print(222)

a=fun()

print(a)

執行結果:

111

none

2.將值返回給函式的呼叫者。

1)無return 返回none

2)只寫renturn none。

3)return 乙個值,該值是什麼就直接返回給函式的呼叫者,函式名()

def

mylen():

s1='

hello world

'length=0

for i in

s1: length=length+1

return

length

str_len=mylen()

print('

str_len: %s

'%str_len)

執行結果:

str_len: 11

4)return多個值,將多個值放到乙個元組裡,返回給函式的呼叫者

def

fun():

return 1,2,[3,4],'

guo'

print(222)

a=fun()

print

(a)執行結果:

(1, 2, [3, 4], '

guo')

三、函式的引數

1.實參

1)位置傳參:按順序一一對應。

def

func(a,b,c):

print

(a)

print

(b)

print

(c)func(1,2,3)12

3

#

寫乙個函式功能比大小

defmax_min(a,b):

if a>b:

return

a

else

:

returnb

print(max_min(100,20))

#可以用三元運算子來寫:

defmax_min(a,b):

return a if a > b elseb

print(max_min(100,20))

2)關鍵字傳參:不按順序,按關鍵字一一對應。

def

max_min(a,b):

return a if a > b else

bprint(max_min(b=200,a=100))

200

3)位置和關鍵字混合傳參:關鍵字引數在最後,位置一一對應。

def

fun(a,b,c,d):

print

(a)

print

(b)

print

(c)

print

(d)fun(1,2,c=3,d=4)

fun(a=1,b=2,3,4)#

關鍵字引數在前面會報錯

2.形參

1)位置傳參:按順序一一對應。

def

func(a,b,c):

print

(a)

print

(b)

print

(c)func(

'ssdd

',3,4)

ssdd

34

2)預設引數:傳參則覆蓋,不傳則預設,預設引數在位置引數後面。

def func(a,b=22):

print

(a,b)

func(11,33) #

11 33 傳參則覆蓋原來的22

def func(a,b=22):

print

(a,b)

func(11) #

11 22 不傳參預設原來的引數

3.動態引數(萬能引數)

*args接收的是實參對應的所有位置引數,並將其放在元組中。

def func(*args):

print

(args)

func(1,2,3,4,5,6)

執行結果:

(1, 2, 3, 4, 5, 6)

**kwargs將所有的關鍵字引數(無實參對應的關鍵字引數)放到乙個字典中。

def func(a,b,c,**kwargs):

print

(kwargs)

func(1,2,r=4,b1=5,c1=6,c=7)

執行結果:

形參的最終順序:位置引數,*args,預設引數,**kwargs.

def func(a,b,c,*args,d='

男',**kwargs):

print

(a)

print

(b)

print

(c)

print

(args)

print

(d)

print

(kwargs)

func(1,2,3,4,5,6,7,d='

女',v=8,m=9,f=22)

執行結果:12

3(4, 5, 6, 7)

*的魔法運用:

1.在函式的呼叫執行時:

*+可迭代物件,代表打散list,tuple,str,dict(鍵),將元素一一新增到args。

**+字典,代表打散,將所有鍵值對放到乙個kwargs字典裡。

def func(*args):

print

(args)

l1=[1,2,3,]

l2=[1,2,3,22,33,44]

tu=(1,2,3)

func(*'

fgjjkkll')

func(*l1,*l2)#函式的呼叫

func(*tu)

func(*)#鍵新增到args

執行結果:('

f', '

g', '

j', '

j', '

k', '

k', '

l', 'l'

)(1, 2, 3, 1, 2, 3, 22, 33, 44)

(1, 2, 3)('

age', '

name

')

def func(**kwargs):

print

(kwargs)

dic1=

dic2=

func(**dic1,**dic2)

執行結果:

2.在函式定義時,*args,**kwargs代表的是聚合。

def func(*args,**kwargs):

print

(args)

print

(kwargs)

dic1=

dic2=

func(*[1,2,3,4,5],*'

fghj

',**dic1,**dic2)

執行結果:

(1, 2, 3, 4, 5, '

f', '

g', '

h', 'j'

)

練習題

編寫名單檔案

def infor_entry(username,***='男'

): with open(

'name_list

',encoding='

utf-8

',mode='a'

) as f:

f.write(

'{}\t{}\n

'.format(username,***))

while

true:

username=input('

請輸入姓名(男生以1開頭):

').strip()

if'1'

inusername:

username=username[1:]

infor_entry(username)

else

: infor_entry(username,'女

')

day9 函式基礎

a.什麼是函式 函式就是對實現某一特定功能的 的封裝。機器 b.函式的分類 誰定義的函式 系統函式 python已經定義好,程式設計師可以直接使用的函式.別人已經造好的機器 自定義函式 由程式設計師自己定義,程式設計師可以自己使用或者給別人使用的函式.自己造機器 語法 def 函式名 形參列表 函式...

python基礎 day9 函式式程式設計1

def 函式名 引數列表 函式體return 返回值示例 加法計算器函式 def calculator first num,second num test first num second num return test print calculator 2,3 def calculator fir...

day9 函式作業

編寫乙個函式,交換指定字典的key和value。例如 dict1 dict1 defexchange dict1 param dict1 return list1 value,key for key,value in dict1.items print dict list1 exchange 編寫乙...