PYTHON學習之函式

2021-10-05 02:12:51 字數 3453 閱讀 8574

#定義函式

defgreet()

:print

('hellow word'

)#呼叫函式

greet(

)#函式引數

defadd

(a,b)

:print

(a+b)

#位置引數

defadd

(a,b)

:print

(a+b)

add(1,

2)#在上例中,呼叫add函式,給的值a為1,b為2。這種位置很重要的引數叫做位置引數

#關鍵字引數

defadd

(a,b)

:print

(a+b)

add(a=

1,b=2)

add(b=

1,a=2)

#*args和**kwargs:分別代表的是預設的位置引數和關鍵字引數。

defadd

(*args,

**kwargs)

:print

(args)

print

(kwargs)

add(1,

2,a=

1,b=2)

'''其中1和2是位置引數,會儲存在args中,a=3,b=4是位置引數,儲存在kwargs中。

傳遞到函式中的args是乙個元組,kwargs是乙個字典。

(1, 2)

'''#元組和字典拆分出來成位置引數和關鍵字引數:

a =(

'a',

'b',

'c')

b =def

greet

(*args,

**kwargs)

:print

(args)

print

(kwargs)

greet(

*a,**b)

## 將a這個元組個的元素乙個個拆開來給`args`,將`b`拆開來乙個個給`kwargs`

'''('a', 'b', 'c')

'''#預設引數

defgreet

(name,age=12)

:print

(name,age)

greet(

'zhiliao'

)greet(name=

'zhiliao'

,age=30)

'''zhiliao 12

zhiliao 30

'''#函式返回值:函式可以有返回值:

defadd

(a, b)

:return a + b

print

(add(1,

2))#3

defgreet()

:return

'zhiliao',18

print

(greet())

#('zhiliao', 18)

#區域性變數:函式中的變數,不能在外面使用。

defgreet()

: name =

'zhiliao'

print

('my name is %s'

% name)

#print(name) # 報錯,因為name只在greet函式中有

#全域性變數:全域性變數是在函式或者某個**塊外面定義的變數,可以在函式中進行使用。

username =

'zhiliao'

defgreet()

:print

('my name is %s'

% username)

greet(

)#global關鍵字:如果想在函式或者某個**塊中修改全域性變數,那麼應該使用global關鍵字。

username =

'zhiliao'

defgreet()

: username =

'ketang'

# 此時不是修改全域性變數username,而是定義乙個與全域性變數相同名字的變數

print

('my name is %s'

% username)

greet(

)print

(username)

# 這時候username仍然是`zhiliao`。

username =

'zhiliao'

defgreet()

:global username

username =

'ketang'

print

('my name is %s'

% username)

greet(

)print

(username)

#ketang

#列表和字典當作全域性變數:列表和字典當作全域性變數,在函式或者**塊中使用的時候,

# 可以任意的增刪改查列表和字典的值。但是如果要修改這個全域性變數指向的值,則必須

# 加global關鍵字。

persons =

['zhangsan'

,'lisi'

]def

add_person

(name)

:add_person(

'wangwu'

)print

(persons)

# 這時候persons已經變成['zhangsan','lisi','wangwu']了。

#而如果你直接修改persons的指向,但沒有使用global關鍵字,那麼做的操作,將是在本地申請乙個區域性變數

persons =

['zhangsan'

,'lisi'

]def

add_person()

: persons =

['aaa'

]add_person(

)print

(persons)

#['zhangsan', 'lisi']

persons =

['zhangsan'

,'lisi'

]def

add_person()

:global persons

persons =

['aaa'

]add_person(

)print

(persons)

#['aaa']

#列表排序sort:使用sort給列表中的值進行排序的時候。如果列表中裝的是字典,那麼將不能正確的排序:

l =[,]

defsort_key

(x):

return x[

'age'

]l.sort(key=sort_key)

print

(l)#匿名函式

l =[,]

l.sort(key=

lambda x: x[

'age'

])

Python學習之函式

0 引論 函式是實現 復用的主要途徑之一,而且函式的使用也可以使得程式更加容易理解,更加規範化。程式很多時候並不是給計算機的,而是給人看的。這裡總結一下python中的函式的應用 1 函式 首先python中的函式的格式是怎樣的。def 函式名 形參 函式體 下面是乙個計算fibonacci數列的函...

python學習之函式

抽象 斐波那契數列 fibs 0,1 for i in range 10 print fibs fibs 0,1 i 2 while i 20 i 1 print fibs 使用callable判斷函式是否可以呼叫 import math x 1 y math.sqrt print callable...

python學習之函式

一 函式 注 當乙個函式名字由兩個單詞組成的時候 第二個單詞的首字母大寫 統一 當我們定義乙個函式的時候 用def語句 def 函式名 引數列表,可以沒有引數 比如 i 1j 2 def add a,b return a b print add i,j 二 關於函式形預設引數 注 假如函式是有形參的...