Python基礎資料型別 函式傳參詳解

2021-09-07 16:55:42 字數 4061 閱讀 2138

python基礎資料型別-函式傳參詳解

一.位置引數

1

#!/usr/bin/env python2#

_*_coding:utf-8_*_3#

@author :yinzhengjie4#

blog:

email:[email protected]

#站在函式定義的角度上

8def func(a,b,c): #

位置引數,如果這裡定義了就必須要傳的引數

9print

(a,b,c)

101112#

站在呼叫函式的角度上

13 func(1,22,333) #

按照位置傳參

14 func(b = 1,a = 2,c=3) #

按照關鍵字傳參

15 func(100,c = 200,b=300) #

混用 : 必須先按照位置傳參,再按照關鍵字傳參

1617

181920#

以上**執行結果如下:

21 1 22 333

22 2 1 3

23 100 300 200

二.預設引數

1

#!/usr/bin/env python2#

_*_coding:utf-8_*_3#

@author :yinzhengjie4#

blog:

email:[email protected]

67 default = '

boy'89

#站在定義函式的角度上

10def welcome(name,***=default): #

預設引數,***關鍵字就是預設引數,預設值為'boy'

11print('

welcome,%s,***: %s

'%(name,***))

1213 default = '

woman'14

15 welcome('

周杰倫'

)16 welcome('

鄧紫棋','

girl')

17 welcome(***='

boy',name='

尹正傑')18

1920

21def lookout(yzj =):

yinzhengjie")

23print

(yzj)

2425 lookout() #

第一次呼叫,預設傳入的是乙個空列表,當函式執行完畢,函式執行完畢存在記憶體的空列表被追加了字串,

26 lookout() #

第二次呼叫,雖說傳入的是個空列表,但是和第乙個很顯然就不是同乙個記憶體位址啦!

27 lookout() #

第三次呼叫,雖然說和第一次呼叫姿勢是一樣的,很顯然拿到的記憶體也是同乙個記憶體位址,也就是說在第一次追加字串的基礎上又一次進行追加操作!

2829

'''30

綜上,我們可以總結預設引數的特點:

311>.它是可以不傳的引數;

322>.如果不傳預設是設定的預設值,如果傳就用傳入的值;

333>.預設的值是在定義階段就確定了;

344>.預設引數的陷阱:針對可變的資料型別要小心;

35預設引數在我們實際生活中常見就貌似安裝軟體,比如我們安裝qq等軟體,如果不指定安裝路徑的話,它預設就會給咱們乙個安裝路徑的喲!

36'''

3738

3940

#以上**執行結果如下:

41welcome,周杰倫,***: boy

42welcome,鄧紫棋,***: girl

43welcome,尹正傑,***: boy

44 ['

yinzhengjie']

45 ['

yinzhengjie']

46 ['

yinzhengjie

', '

yinzhengjie

']

三.動態引數

1

#!/usr/bin/env python2#

_*_coding:utf-8_*_3#

@author :yinzhengjie4#

blog:

email:[email protected]

8def my_sum(*args):

9 count_sum =0

10for i in

args:

11 count_sum +=i

12return

count_sum

13print(my_sum(1,2,3,4))

1415

16def inte***ce(**kwargs):

17print

(kwargs)

1819 info =

24 inte***ce(**info)

2526 #這種定義形式引數的方式可以hold住所有的傳參喲,當然預設傳參除外!

27def transferparameters(*args,**kwargs):

28print

(args)

29print

(kwargs)

3031 a = (10,20)

32 b =

33 transferparameters(*a,**b)

3435

36'''

37綜上所示,動態引數有以下特點

381>.站在函式定義的角度上:*做聚合用,將乙個乙個的引數組合成乙個元組;

392>.站在函式呼叫的角度上:*做打散用,將乙個列表或者元組打散成多個引數;

403>.*只針對按位置傳參;

414>.**動態引數,接受按關鍵字傳遞過來的引數,組織成乙個字典;

42'''

4344

4546

#以上**執行結果如下:

47 10

48 49 (10, 20)

50

四.關於形式引數混搭案例

1

#!/usr/bin/env python2#

_*_coding:utf-8_*_3#

@author :yinzhengjie4#

blog:

email:[email protected]

8#注意,如果想要把所有的形式引數都用上,我們可以這樣定義(站在函式定義的角度:所有的引數都是形式引數)910

def func(位置引數1,位置引數2,*args,預設引數=10,**kwargs):

11print

(位置引數1,位置引數2)

12print

(預設引數)

13print

(args)

14print

(kwargs)

1516 func("

一","

二","

三","

四","

五",預設引數='

yinzhengjie

',a=100,b=200)

1718

print("

-"*20,"

我是分割線

","-

"*20)

1920 func(100,200,300,400,a=1,b=2)

2122

232425#

以上**執行結果如下:

26一 二

27yinzhengjie

28 ('

三', '

四', '五'

)29

30 -------------------- 我是分割線 --------------------

31 100 200

32 10

33 (300, 400)

34

matlab常用函式 資料型別函式

三 基本資料型別函式 1 數值函式 double 轉換為雙精度浮點數 single 轉換為單精度浮點數 typecast 在不改變資料大小情況下轉換資料型別 y typecast x,type type可選範圍 uint8 int8 uint16 int16 uint32 int32 uint64 ...

C語言資料型別,函式, 2021 2 10

前言 跟c語言沒多大關係,可以跳過前言 今日是除夕的前一天,也是第一次在外過年,不過還好的是身邊有很多親戚。今天看了一下計算機二級考試的試題,第乙個題目問的是c語言是由什麼構成,答案有 語句,函式,還有兩個沒太在意,忘了,雖然我知道答案應該是函式,但還是不確定,說明自己對基礎知識掌握的還不是很好,打...

Oracle資料型別,函式與儲存過程

字串型別 固定長度 char nchar n 表示unicode編碼 可變長度 varchar2 nvarchar2 數字型別 number p,s p 整數字數,s小數字數 integer 整數 binary float 單浮點 binary double 雙浮點 float n 浮點數 n表示精...