函式:是組織好的,可以重複使用的**段,可以提高**段的效能,是整體更具有結構性。
我們也可以定義乙個實現某種功能的函式,對於定義函式,有如下規則:
(1)函式**塊以def關鍵字開頭,後接函式名和圓括號(),後面再跟個冒號:。
(2)函式必須放在圓括號中間,圓括號之間可以用於定義函式。
(3)函式的第一行語句可以選擇性地使用文件字串——用於存放函式說明。
示例:
def myprint():
print("hello")
print("你好!")
myprint()
結果如下:
hello
你好
2.1> 無引數,無返回值的函式:
2.1> 無引數,無返回值的函式:
格式:
def 函式名():
**塊函式名()
示例:
def myprint():
print("hello")
print("你好!")
myprint()
結果如下:
hello
你好
2.2> 無引數,有返回值的函式:
格式:
def 函式名()
**塊return()
變數名=函式名()
示例:
def mysum():
a=1b=2
return a+b
c=mysum()
print(c)
結果如下:
3
2.3 >有引數,無返回值的函式:
格式:
def 函式名(形參1,形參2,...)
**塊函式名(實參1,實參2,...)
def mysum(a,b)
print(a+b)
mysum(3,5)
結果如下:
8
2.4 > 有引數,有返回值的函式:
格式:
def 函式(形參1,形參2,......)
**塊return 返回值
變數名 = 函式名(實參1,實參2,.....)
在python中,數字,字串,元組是不可更改的型別,而列表,集合,字典則是可以修改的型別。
python函式的引數傳遞:
例項:
#可變數
a1 = [1, 2, 3]
a2 =
a3 =
#不變數
a4 = 123
a5 = "123"
a6 = (1, 2, 3)
#傳入可變數
def kebian(a1,a2,a3):
a2[4]=40
a3.add(4)
kebian(a1,a2,a3)
#結果已變
print(a1)
print(a2)
print(a3)
print("-----------------------------")
#傳入不變數
def bubian(a4,a5,a6):
a4=a4+4
a5=a5+'4'
a6=(1,2,3,4)
bubian(a4,a5,a6)
#結果依然不變
print(a4)
print(a5)
print(a6)
結果如下:
可以看出,可變數經過改變後,在不的也在改變,但不變數不會變化
[1, 2, 3, 4]
-----------------------------
123123
(1, 2, 3)
呼叫函式時,可使用的引數型別主要有一下三種:
4.1 > 固定引數:
固定引數必須以正確的順序傳入函式,且在呼叫函式時引數的數量必須和宣告時的數量一樣。否則會報錯。
def myplus(a, b):
return a + b
a = myplus("hello ", "world")
print(a)
結果如下:
hello world
4.2 > 不定長引數:
加了星號(*)的變數名會存放所有為命名的變數引數,可以使函式處理比當初宣告時更多的引數。
def mysum(*a): # 元祖,切記是加了*號的變數名;
print(type(a), a)
return sum(a)
print(mysum(1, 2))
print(mysum(1, 2, 3))
結果如下:
(1, 2)
3(1, 2, 3)
6
4.23> 預設引數:
函式使用預設引數來確定傳入的引數值,預設引數的值如果沒有傳入,則被認為是預設值。如果傳入預設值,則以傳入的為準。若傳入預設引數的值,必須寫明:預設值=值。
def myfun(a, *b, c=1):
# 返回a+sum(b)**c
return a + sum(b) ** c
#a=0 b=(1,2) 預設c=1
print(myfun(0, 1, 2))
#a=0 b=(1,2) c=2——>必須寫明c=2
print(myfun(0, 1, 2, c=2))
結果如下:
39
5.1> 全域性變數:
除過函式和類中定義的變數外,其餘都為全域性變數。
print("1.全域性變數")
# 除過函式中和類中定義的變數,都為全域性變數
for i in range(10):
x = i
# i=9,x=9.這裡x和i都為全域性變數
def myfun():
print(x)
myfun()
print(x)
結果如下:
99
要想在函式中修改全域性變數的值,就需要使用global。
# global的使用
s1 = 100
def myfun():
global s1
s1 = 200
print(s1)
#呼叫函式之後,s1的值改變
myfun()
print(s1)
結果如下:
100200
5.2> 區域性變數:
區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問。呼叫函式時,所有在函式內宣告的變數名稱都將被加入到作用域中。
print("2.區域性變數")
a1 = 20
def myfun(a1):
a1 = 10
print(a1)
myfun(a1)
print(a1)
結果如下:
2.區域性變數
1020
對於函式的巢狀,想要使用內部修改外部函式值,需要使用nonlocal。
# nonlocal的使用,一般用於函式的巢狀中
def f1():
a = 3
def f2():
nonlocal a
print(a)
a = 5
print(a)
f2()
#通過nonlocal,已經將a的值進行修改
print(a)
f1()
結果如下:35
5
函式和函式程式設計 Python
函式和函式程式設計 python 1 函式 1 函式型別與返回值 在c語言中沒有返回值預設為 void 返回型別 在python中,對應的返回物件型別是none.示例1def hello 定義hello函式 print hello world res hello 呼叫hello函式 print re...
python 函式的定義和使用
函式是一段 的表示 函式的表示式 def 函式名 引數0個或者多個 函式體 return 返回值 用函式名加上引數,對函式進行呼叫,給出的引數會替換函式定義中的引數。無論函式是否由引數,都必須保留括號。函式定義時引數的要求 def 函式名 引數 b 函式體 return 返回值 例如 def fac...
python 函式的定義和使用
定義函式的方法 def 函式名 引數列表 函式體return 返回值 呼叫函式 函式名 具有實際值的引數列表 1 不帶引數的函式 函式定義 defhello print hello world print hello world 函式呼叫 hello 2 帶引數和帶return的函式 函式定義 計算...