#定義函式
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 二 關於函式形預設引數 注 假如函式是有形參的...