Python學習筆記DAY3 函式

2021-07-23 15:54:55 字數 1904 閱讀 1949

關於函式,程式設計**少的了函式,python裡的函式呢,使用def 來定義,如下例子:

def fun():

print('這是乙個函式')

用def來定義,下面縮排的為函式體,呼叫的話直接呼叫函式名來實現。

提到函式自然會想到引數,python裡的引數很靈活,很神奇。首先,引數是乙個變數,所以呢,元組自然是不能用來傳值的。python的函式有三種特殊的引數,分別是關鍵字引數,預設引數,收集引數,下面**說明:

首先是一般的引數形式:

def power(x,n):

s = 1

while n > 0:

n = n - 1

s = s * x

return s

呼叫power(2,2)後,會返回2的2次方,如果只給函式乙個值2的話,編譯器就會報錯。

#報錯內容

traceback (most recent call last):

file "", line 1, in power(2)

typeerror: power() missing 1 required positional argument: 'n'

少了乙個引數n,為了防止這樣的出現,或者大多數情況下n的值是一樣的,每次都要輸入的話很麻煩,這個時候預設引數就出現了:

def power(x,n = 2):

s = 1

while n > 0:

n = n - 1

s = s * x

return s

這樣的話n的值已經被預設了,可以只傳x的值就可計算,當需要的n的值不是2時,再用正常的傳值方式即可。

有時候,需要的引數的數量是不一定的,就像給了一堆數字,然後求他們的和,這一堆的的數字數量是不一定的,這個時候怎麼辦呢,可變引數(收集引數)就出現了,定義可變引數的時候再引數前加上*號,這樣傳給函式的值就是乙個元組,裡邊可以是任意個值,0個也可以。如果要傳入的值是乙個元組或者列表,可以直接在列表和元組名之前加上*直接傳入即可。**示例如下:

def fun1(*x):

sum = 0

for i in x:

sum += i

return sum

呼叫時使用fun1(1,2,3),即可輸出結果6.

對於前面求平方的例子,有另一種傳值方式,power(n = 3, x = 2)也能正確的返回,把每個量都標明了關鍵字,這就叫關鍵字引數

再來個例子:

def person(name, age, **kw):

print('name:', name, 'age:', age, 'other:', kw)

這個輸入時輸入name和age後,後面乙個即為關鍵字引數,可由輸入者自行決定引數的名稱和值傳值時傳入person('a',12,love = 'man'),便能返回

name: a age: 12 other: ,將新的關鍵字和引數放入dict中。

如果要限制關鍵字引數的名字,就可以用命名關鍵字引數,例如,只接收 city 和 job 作為關鍵字引數。這種方式定義的函式如下:

def person(name, age, *, city,job):

print( name, age, city, job)

*後面的是關鍵字引數

在 python 中定義函式,可以用必選引數、預設引數、可變引數、關鍵字引數和命名關鍵字引數,這 5 種引數都可以組合使用,除了可變引數無法和命名關鍵字引數混合。但是請注意,引數定義的順序必須是:必選引數、預設引數、可變引數/命名關鍵字引數和關鍵字引數。在函式呼叫的時候, python 直譯器自動按照引數位置和引數名把對應的引數傳進去。

Python學習筆記 DAY 3

1.集合 集合是乙個無序的,不重複的資料組合,它的主要作用 去重 關係測試 list 1 set 1,3,5,7,9,4,6,list 2 set 2,4,5,6,8,10 print list 1.union list 2 print list 1.difference list 2 print ...

Python基礎學習筆記 Day 3

程式有三種基本結構組成 1.順序結構 2.分支結構 3.迴圈結構 if 條件 語句 判斷使用者輸入數字的奇偶性 s eval input 請輸入乙個整數 if s 2 0 print 這是乙個偶數!print 您輸入的數是 s 判斷使用者輸入的數字的特性 s eval input 請輸入乙個整數 i...

Python小白學習筆記 day3

第三章 python基本資料型別 學習筆記 浮點數與整數,python浮點數運算存在 不確定尾數 問題,即兩個浮點數運算,有一定概率在運算結果後增加一些 不確定的 尾數。受限於計算機表示浮點數使用的儲存寬度,各程式語言共性問題,以前還真沒太在意 round x,d 為四捨五入函式,d為對x進行四捨五...