python小白的學習筆記之函式

2021-10-08 08:47:59 字數 4032 閱讀 5687

函式

在python中函式是以def為開頭的,後面跟上():括號裡面是引數

一般來說函式的第一行會使用# 或者""" 「」"來說明函式的用途,規格

用縮進來表示下面的**在函式體中

最後用return表示式來返回乙個值

第乙個例子:

def

printf

(str):

"""用於列印文字的函式"""

print

(str*2

,end='')

str=

'hello world '

printf(

str)

# 傳入引數呼叫函式

執行結果:

hello world hello world
注意這裡的引數傳遞

在python中,型別屬於物件,變數沒有型別

分為可更改與不可更改物件

不可變型別:整數、字串、元組

可變型別: 列表、字典

第二個例子:

def

change_int

(a):

a +=

10b =

10change_int(b)

print

(b)

執行結果是:

10
為什麼這裡仍然輸出的是10呢?

因為例項中有int物件2,變數b指向它,傳引數的時候,是複製了變數b,此時b,a都指向了同乙個int物件,而在函式中的賦值a+=10,相當於新生成了乙個int值物件20,並讓a指向它,然後函式退出來的時候,a就銷毀了,最後輸出的b的值不變仍然為10

那麼要怎麼樣才能將運算結果帶出來呢?

這裡就需要用到return了

將第二個例子稍加改變一下

def

change_int

(a):

a +=

10return a

b =10

x = change_int(b)

print

(x)

輸出結果:

20
這裡函式返回了值a,也就是新的int物件x的值

再列印x就可以得到想要的結果20了

ps:在c語言中可以用指標來實現b值的改變

傳可變引數

第三個例子

def

changeable

(list):

"""傳入可以改變的列表"""

list[0

,1,2

])# 新增0,1,2進入列表

print

("函式內list的值:\n"

,list

)list=[

7,8,

9]changeable(

list

)print

("函式外list的值:\n"

,list

)

執行結果

函式內list的值: [7

,8,9

,[0,

1,2]

]函式外list的值: [7

,8,9

,[0,

1,2]

]

可以看成list是發生改變了的

引數分為

必須引數

以正確的順序和數量傳入引數,否則報錯

可以參考第三個例子中的def changeable(list)就是必須引數

關鍵字引數

函式呼叫使用關鍵字引數來確定傳入的引數值

順序可以與宣告的不一樣

第四個例子

def

introduce

(name, age, address)

:print

("我是來自{}的{},今年{}歲"

.format

(address,name,age)

introduce(age=

19, address=

'廣東'

, name=

'justin'

)# 這裡引數的位置可以與宣告的不一樣

#python可以通過關鍵字來正確傳入引數

執行結果:

我是來自廣東的justin,今年19歲
預設引數

若沒有給定的實參,則呼叫函式中給定的引數值

仍然是第四個例子稍微改動一些:

def

introduce

(name, age, address=

'甘肅'):

# 注意這裡預設引數在最後給出

# 要按照 必須、關鍵字、預設、不定的順序來給出引數,否則會報錯

print

("我是來自{}的{},今年{}歲"

.format

(address,name,age)

)introduce(age=

19, address=

'廣東'

, name=

'justin'

)introduce(age=

19, name=

'justin'

)

執行結果

我是來自廣東的justin,今年19歲

我是來自甘肅的justin,今年19歲

不定長引數

需要乙個函式能夠處理比當初宣告時更多的引數,這些引數叫做不定長引數

下面來看乙個例子

第五個例子

def

test

(test1,

*args)

:# 這裡*args就是不定引數

print

(test1)

print

(args)

# 加了*的引數會以元組的方式匯入,存放所有的不定引數

test(60,

70,80)

執行結果:

60(70

,80)

第六個例子

def

test_2

(test2,

**args)

:# 這裡**args就是不定引數

print

(test2)

print

(args)

# 加了**的引數會以字典的方式匯入,存放所有的不定引數的鍵對

test_2(

60, name=

'mike'

,age=

20)

執行結果

60

匿名函式

lambda

第六個例子

sum

=lambda arg1, arg2: arg1 * arg2

# 基本的就是 變數名 = lambda 變數1,變數2……:運算表示式

print

(sum(10

,20))

執行結果:

200
碼字不易,各位看官老爺點讚收藏一下喲

Python 學習筆記 enumerate函式

enumerate 函式用於將乙個可遍歷的資料物件 如列表 元組或字串 組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中。seasons spring summer fall winter list enumerate seasons 0,spring 1,summer 2,f...

小白學習筆記之Python函式(二)

定義函式時,可以在形參前邊加乙個 這樣這個形參可以獲取到所有的實參 帶 號的形參只能有乙個,屬於位置引數,可以和其他引數配合使用,傳遞為乙個元祖 def s a a 乙個 1,2,5 的元祖 定義乙個變數來儲存結果 r 0 遍歷元祖,並將元祖中的數進行相加 for n in a r n print ...

小白python學習筆記

1.cmd命令列下怎麼切換目錄 2.python對縮排有嚴格要求,要頂格寫,單引號 雙引號 可互換使用。3.如何在python中讓兩個print 函式輸出列印在同一行內 4.在windows下裝lightgbm包 具體是哪個教程能裝好,要自己嘗試了,費了很大功夫,最後也不知道是怎麼搞好的,反正不報錯...