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

如果我们需要获取字典值的话,我们有两种方法,一个是通过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 division
def 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 division

def append(args=[]):
    if len(args) <= 0:    
        args = []
    args.append(0)
    print args

append()
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 args

func(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
-2
3
1
3
(1, 2, 3)
['three', 'two', 'one']
['3', '2', '1']
find: 1
find: 3
>>> 

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

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# return语句
from __future__ import division
def arithmetic(x, y, operator):
    result = {
        "+" : x + y,
        "-" : x - y,
        "*" : x * y,
        "/" : x / y 
    }
    return result.get(operator)     # 返回计算结果

# 没有return语句的函数返回None
def func():
    pass

print func()

# return后不带参数
def func():
    return

print func()

# return返回多个值
def func(x, y, z):
    l = [x, y, z]
    l.reverse()
    numbers = tuple(l)
    return numbers

x, 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, c

x, 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 + b
def sub(a, b):
    return a - b
def 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 -*-

# lambda
def 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 i
def func2(n):
    for i in range(n):
        yield i

print func(3)
f = func2(3)
print f
print f.next() 
print f.next() 
#输出
>>> 
0
1
2
0
1
2
0
<generator object func2 at 0x0000000002B97CF0>
0
1
>>> 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值