国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python函數

2019-11-06 08:16:45
字體:
來源:轉載
供稿:網友

Python函數

1、def語句

def語句將創建一個函數對象并將其賦值給一個變量名。
def <name>(arg1, arg2, ... argN)      # 參數個數可以是0到任意數量    <statements>    return <value>                    # return是可選的,如果沒有,函數返回None定義一個相乘的函數。
>>> def multiply(x, y):    return x * y                      # return用于函數返回值>>> multiply(3, 4)12>>> multiply("Hello", 3)              # 參數類型的不同,乘法的實現也不同'HelloHelloHello'

2、函數參數

(1) 參數和共享引用。不可變參數傳遞值,可變參數傳遞引用。
>>> def fun(a, b):    a = 11    b[0] = "welcome">>> x = 13>>> y = ["hello", "world"]>>> fun(x, y)                         # 參數x是整型,y是列表>>> x, y(13, ['welcome', 'world'])

(2) 參數匹配。

>>> def fun(name, age):    PRint "%s is %d" % (name, age)>>> fun("Mike", 18)                   # 位置匹配Mike is 18>>> fun(name="Jack", age=20)          # 名稱匹配Jack is 20

混合匹配中位置匹配必須在從左往右,之后進行名稱匹配。

>>> fun("Lily", age=20)               # 混合匹配Lily is 20>>> fun(name="LiLy", 20)              # 匹配錯誤SyntaxError: non-keyWord arg after keyword arg

(3) 默認參數。

默認參數允許創建函數可選的參數,如果沒有傳入值的話,在函數運行時,使用默認值。
>>> def fun(name, age=18, addr="ShangHai"):    print "%s is %d at %s" % (name, age, addr)>>> fun("Mike")                       # 指定name,age和addr使用默認值Mike is 18 at ShangHai>>> fun("Jack", 20)                   # 指定name和age,addr使用默認值Jack is 20 at ShangHai>>> fun("Lily", 22, "GuangZhou")      # 不適用默認值Lily is 22 at GuangZhou>>> fun("Lily", addr="ShengZhen")     # 指定name和addr,age使用默認值Lily is 18 at ShengZhen

(4) 參數匹配擴展。

符號(*)匹配一個元組,符號(**)匹配一個字典。
>>> def fun(*args):                   # 定義參數是一個元組    print args>>> fun(1)(1,)>>> fun(1, 2, 3, 4)(1, 2, 3, 4)>>> def fun(**args):                  # 定義參數是一個字典    print args>>> fun(name="Mike", age=19){'age': 19, 'name': 'Mike'}

符號(*)和符號(**)也用來解包參數。

>>> def fun(a, b, c):    print a, b, c>>> L = [1, 2, 3]>>> fun(*L)                           # (*)用來解包列表1 2 3>>> def fun(name, age, addr):    print "%s is %d at %s" % (name, age, addr)>>> D = {"name":"Mike", "age":18, "addr":"ShangHai"}>>> fun(**D)                          # (**)用來解包字典Mike is 18 at ShangHai

(5) apply內置函數用來調用函數。

>>> pargs = (1, 2)>>> kpargs = {"a":3, "b":4}>>> def fun(*pargs, **kpargs):    print pargs, kpargs>>> apply(fun, pargs, kpargs)(1, 2) {'a': 3, 'b': 4}

3、函數間接調用

函數可以作為參數傳遞。
>>> def fun1():    def fun2():                       # 在方法fun1內定義一個方法fun2        print "fun2"    return fun2                       # 把方法fun2作為值返回>>> f = fun1()>>> f()fun2

4、函數屬性

向函數添加自定義的屬性。
>>> def fun():    print fun.param>>> fun.param = 11                    # param賦值11>>> fun()11

5、匿名函數lambda

lambda的主體是一個表達式,返回表達式的值。
>>> f = (lambda a, b, c: a + b + c)   # lambda定義了一個三個參數的方法>>> f(1, 2, 3)6>>> f = lambda x: (lambda y: y ** x)  # lambda方法返回一個方法>>> X = f(2)                          # X = lambda y : y ** 2>>> X(3), X(4)(9, 16)>>> Y = f(3)                          # Y = lambda y : y ** 3>>> Y(2), Y(3)(8, 27)

6、序列中映射函數map

>>> def fun(a, b):    return a + b>>> L1 = [1, 2, 3, 4]>>> L2 = [4, 5, 6, 7]>>> map(fun, L1, L2)                  # 把L1和L2的值作為參數調用fun[5, 7, 9, 11]

7、filter和reduce

filter用于過濾元素。
>>> L = [1, 2, 3, 4]>>> filter((lambda x: x > 2), L)      # 提取L中大于2的值[3, 4]

reduce用于對元素進行統一操作。

>>> L = [1, 2, 3, 4]>>> reduce((lambda x,y: x + y), L)    # 把列表的值相加10
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴塘县| 扎兰屯市| 栖霞市| 临泽县| 萍乡市| 高陵县| 峨眉山市| 乐山市| 台南市| 临朐县| 东山县| 沂南县| 峨眉山市| 牟定县| 德化县| 乌拉特中旗| 永嘉县| 兰西县| 手机| 德庆县| 安平县| 济源市| 沧州市| 咸丰县| 固安县| 玉林市| 长武县| 延吉市| 保山市| 镶黄旗| 广德县| 沙洋县| 城口县| 南雄市| 临清市| 驻马店市| 榆中县| 普陀区| 岑溪市| 子长县| 古蔺县|