Python精通 Python函式使用

2021-09-29 16:31:43 字數 4108 閱讀 5059

在程式設計意義上的函式其實是指完成某種操作的**塊,當然這個是個人的理解,但是這個概念在所有的程式語言中都是通用的。這個**塊用來完成某寫特定的操作。但是在數學上的函式卻是表示某種對應關係,這兩者之間還是有一定的區別的。但是在某種角度上講我們所程式設計的這種**塊其實就是表示的是引數與返回值之間的關係。從這個角度上來說其實也可以看做是兩個函式的概念是一樣的。

在python中函式是邏輯結構化和過程化的程式設計方式

# python 中定義函式的方式

# def 定義函式的關鍵字

# test 函式名

# ():定義引數

deftest

(x):

# 函式體

print

("this is function"

) x+=

1print

(x)test(6)

# 無引數的函式

deftest()

:return2*

3+1;

a = test(

)print

(a)

為什麼要使用函式,在工作或者開發中,有些工作是重複的並且常用的,如果將這些重複常用的工作做乙個抽象總結,抽象出來乙個適合全部功能使用的**。通過這樣的方式,就將一些特定的功能從整體中抽取出來,從而簡化了**,提高了開發效率。在使用相同功能的時候就直接呼叫者函式就可以了。

# python 中定義函式的方式

# def 定義函式的關鍵字

# test 函式名

# ():定義引數

deftest

(x):

# 函式體

print

("this is function"

) x+=

1print

(x)test(6)

deftest()

:return2*

3+1;

a = test(

)print

(a)

使用函式的好處

過程在python就是乙個沒有返回值的函式。過程的本質也是一種函式

def

test01()

: message =

'this is test nihui'

print

(message)

deftest02()

: msg =

"hello world!"

print

(msg)

return msg

t1 = test01(

)t2 = test02(

)print

(t1)

print

(t2)

從上面**的輸出效果來看,如果在python中沒有顯式的指定返回值,其實python會預設返回乙個none,從這個角度上來看其實過程就是乙個沒有返回值的函式。下面就來看看如下的擴充套件。

def

test01()

: message =

'this is test nihui'

print

(message)

deftest02()

: msg =

"hello world!"

print

(msg)

return msg

deftest03()

:return1,

2,3,

4,[123,12

,"1321"],

(213

,"34"),

t1 = test01(

)t2 = test02(

)t3 = test03(

)print

(t1)

print

(t2)

print

(t3)

在python中返回多個值的時候返回的是乙個元組,之前了解過元組是不可變的,第一層元素是不能修改的。其實在返回的時候將所有的值看做是乙個元組返回整體。返回的其實還是乙個元素。

形式引數形參變數只能在呼叫的時候被分配記憶體單元,在呼叫結束的時候立即釋放為變數分配的記憶體空間,當然這個形參只在指定的函式內部是有效的,在函式執行結束的時候就不可以使用這個變數了。

實際引數實際引數是作為變數傳入到函式中進行操作的引數,可以是常量、變數、表示式、函式等。在進行操作的時候必須指定的引數值。

def

calc

(x,y)

: res = x**y;

return res

res = calc(2,

3)print

(res)

位置引數和關鍵字

位置引數,缺一少一都不行

關鍵字引數,無須一一對應,缺一不行多乙個不行。

def

test

(x,y,z)

:print

(x)print

(y)print

(z)test(1,

2,3)

# 關鍵字引數

deftest

(x,y,z)

:print

(x)print

(y)print

(z)test(y=

1,z=

2,x=

3)

如果混合使用位置引數必須在關鍵字引數的左邊,例如下一些使用會報錯

test(1,

3,y=2)

test(1,

3,z=

2,y=4)

test(z=2,

1,3)

預設引數

def

handle

(x,type

="nihui"):

print

(x)print

(type

)

handle(

"test"

)handle(

"test"

,type

="hello"

)handle(

'hello'

,"world"

)

引數組

在字串拼接的時候 * 表示與列表有關,** 就是與列表有關,那麼這裡提到的引數組的使用也跟這個地方是一樣的。

在python中定義函式的時候,有時需要對函式引數做擴充套件,這個時候就是用到引數組。在使用的時候,如果傳入多個值的時候,可以只取其中的乙個值來使用。如果不傳值的時候就為空。

def

test

(x,*args)

:print

(x)print

(args)

test(1,

2,3,

4,5,

6)deftest

(x,**kwargs)

:print

(x)print

(kwargs)

test(

1,y=

2,z=3)

位置引數和關鍵字引數,乙個引數不能傳兩邊值

test(

1,y=

1,z=

2,z=3)

test(1,

2,21,

312,y=

2,z=4)

#這個函式可以接收任何形式的引數,就看你對這些引數如如何處理了。

deftest

(x,*args,

**kwargs)

:print

(x)print

(args)

print

(kwargs)

test(

123,

123,

123,

123,

,y=2

,z=3

)

上面的內容分析了關於函式的定義,以及函式引數的使用方式,了解了什麼叫做函式,什麼叫做過程。以及位置引數和關鍵字引數等概念。

python中full函式 Python函式混亂

我正在學習 python.我有乙個函式readwrite filename,list filename的型別為string.list是乙個包含要在檔案中重寫的字串的列表.我有乙個簡單的函式呼叫,如下所示 fname hello.txt readwrite xx fname,datalist 我面臨的...

python order函式 Python函式之二

關鍵字引數 kwargs def foo kw if y in kw print kw y foo x 123,y 1232 如上面的示例關鍵字引數用於函式呼叫,通過 鍵 值 形式加以指定。這種方式可以根據傳入的引數來決定函式的執行方向。可以讓函式更加清晰 容易使用,同時也清除了引數的順序需求,及時...

python學習筆記(二) python基礎函式

python之所以強大好用,離不開可以呼叫的各種庫,同時也和他自身函式相關,下面為學習python函式相關知識後整理知識點。1 python函式引數 python函式定義簡單但靈活度非常大。除正常定義的必選引數外,還可以使用預設引數,可變引數,關鍵字引數。預設引數 def power 5 x 2 在...