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表示精...