Python程式設計 函式的定義和操作

2021-09-24 08:54:21 字數 3948 閱讀 1448

函式:是組織好的,可以重複使用的**段,可以提高**段的效能,是整體更具有結構性。

我們也可以定義乙個實現某種功能的函式,對於定義函式,有如下規則:

(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的函式 函式定義 計算...