python_9(获取字典值、函数参数、函数返回值、lambda的函数用法)

来源:互联网 发布:计算机算法 编辑:程序博客网 时间:2024/06/02 01:27

如果我们需要获取字典值的话,我们有两种方法,一个是通过dict[‘key’],另外一个就是dict.get()方法

#获取字典值info = {'1':'first','2':'second','3':'third'}number = raw_input('input type you number:')print info.get(number,'error')#实例1#!/usr/bin/python# -*- coding: UTF-8 -*-# 函数的定义from __future__ import divisiondef arithmetic(x, y, operator):    result = {        "+" : x + y,        "-" : x - y,        "*" : x * y,        "/" : x / y     }    return result.get(operator)     # 返回计算结果# 函数的调用print arithmetic(1, 2, "+")

———————–函数的参数—————————

#!/usr/bin/python# -*- coding: UTF-8 -*-from __future__ import divisiondef append(args=[]):    if len(args) <= 0:            args = []    args.append(0)    print argsappend()append([1])append()# 函数的缺省参数def arithmetic(x=1, y=1, operator="+"):    result = {        "+" : x + y,        "-" : x - y,        "*" : x * y,        "/" : x / y     }    return result.get(operator)     # 返回计算结果print arithmetic(1, 2)print arithmetic(1, 2, "-")print arithmetic(y=3, operator="-")print arithmetic(x=4, operator="-")print arithmetic(y=3, x=4, operator="-")# 列表作为参数传递def arithmetic(args=[], operator="+"):    x = args[0]    y = args[1]    result = {        "+" : x + y,        "-" : x - y,        "*" : x * y,        "/" : x / y     }    return result.get(operator)     # 返回计算结果print arithmetic([1, 2])# 传递可变参数def func(*args):        print argsfunc(1, 2, 3)    # 传递可变参数def search(*t, **d):    keys = d.keys()    values = d.values()    print keys    print values    for arg in t:         for key in keys:             if arg == key:                print "find:",d[key]search("one", "three", one="1",two="2",three="3")#输出结果>>> [0][1, 0][0]3-1-2313(1, 2, 3)['three', 'two', 'one']['3', '2', '1']find: 1find: 3>>> 

————————函数返回值——————————

#!/usr/bin/python# -*- coding: UTF-8 -*-# return语句from __future__ import divisiondef arithmetic(x, y, operator):    result = {        "+" : x + y,        "-" : x - y,        "*" : x * y,        "/" : x / y     }    return result.get(operator)     # 返回计算结果# 没有return语句的函数返回Nonedef func():    passprint func()# return后不带参数def func():    returnprint func()# return返回多个值def func(x, y, z):    l = [x, y, z]    l.reverse()    numbers = tuple(l)    return numbersx, y, z = func(0, 1, 2)print x, y, z# return返回多个值def func(x, y, z):    l = [x, y, z]    l.reverse()    a, b, c = tuple(l)       return a, b, cx, y, z = func(0, 1, 2)print x, y, z    # 多个return语句def func(x):    if x > 0:        return "x > 0"    elif x == 0:        return "x == 0"    else:        return "x < 0"print func(-2)# 多个return语句的重构def func(x):    if x > 0:        result = "x > 0"    elif x == 0:        result = "x == 0"    else:        result = "x < 0"    return result    print func(-2)   

——————-嵌套函数、内部函数———————————-

#!/usr/bin/python# -*- coding: UTF-8 -*-# 嵌套函数def sum(a, b):    return a + bdef sub(a, b):    return a - bdef func():    x = 1    y = 2    m = 3    n = 4    return sum(x, y) * sub(m, n)print func()# 调用内部函数def func():    x = 1    y = 2    m = 3    n = 4    def sum(a, b):          # 内部函数        return a + b    def sub(a, b):          # 内部函数        return a - b    return sum(x, y) * sub(m, n)print func()# 内部函数直接使用外层函数的变量def func():    x = 1    y = 2    m = 3    n = 4    def sum():              # 内部函数        return x + y    def sub():          # 内部函数        return m - n    return sum() * sub()print func()

—————-计算阶乘——————-

#!/usr/bin/python# -*- coding: UTF-8 -*-# 计算阶乘def refunc(n):    i = 1    if n > 1:                       # 递归的结束判断        i = n        n = n * refunc(n-1)         # 递推    print "%d! =" %i, n    return n                        # 回归refunc(5)# 使用reduce计算阶乘print "5! =", reduce(lambda x, y: x * y, range(1, 6))

—————-lambda的函数用法—————————-

#!/usr/bin/python# -*- coding: UTF-8 -*-# lambdadef func():    x = 1    y = 2    m = 3    n = 4    sum = lambda x, y : x + y    print sum    sub = lambda m, n : m - n    print sub    return sum(x, y) * sub(m, n)print func()    # lambda的函数用法   print (lambda x: -x)(-2)

#!/usr/bin/python# -*- coding: UTF-8 -*-# 定义Generator函数def func(n):    for i in range(n):        yield i# 在for循环中输出for i in func(3):    print i# 使用next()输出r =  func(3)print r.next()print r.next()print r.next()#print r.next()# yield与return区别def func(n):    for i in range(n):        return idef func2(n):    for i in range(n):        yield iprint func(3)f = func2(3)print fprint f.next() print f.next() #输出>>> 0120120<generator object func2 at 0x0000000002B97CF0>01>>> 
0 0
原创粉丝点击