Python-函数

创建函数

# def创建函数
def MyFirstFunction():
    print('这是我创建的第一个函数!')
    print('我表示很激动~~~~')
    print('感谢TVB,CCTV')

# 调用函数
MyFirstFunction()

# 函数的参数/形参和实参
def MySecondFunction(name):
    '函数定义过程中的name是叫形参'
    # 因为他只是一个形式,表示占据一个参数位置
    print(name + ',我爱你!')
    print('传递进来的' + name + '叫做实参,因为他是具体的参数值!')

MySecondFunction('yangyang')

def add(num1,num2):
    result = num1 + num2
    print(result)

add(1,5)

# 函数的返回值
def add1(num1,num2):
    return (num1 + num2)

print(add1(3,8))

# 参数文档:function.__doc__
print(MySecondFunction.__doc__)

# 关键字参数:通过参数名指定想要赋值的参数
def saysame(name,words):
    print(name + '->' + words)

saysame('yangyang', '未来可期')
saysame(words = '未来可期',name = 'yangyang')

# 默认参数:定义了默认值的参数
def saysome(name = 'yangyang',words = '未来可期'):
    print(name + '->' + words)
saysome()
saysome('qianxi', )
saysome('qianxi', 'respect')

# 收集参数:*
def test(*params):
    print('参数的长度是:', len(params))
    print('第二个参数是:', params[1])
test(1, '小甲鱼', 3.14, 5, 8, 3)
# 收集参数后面如果要加关键字参数,建议设一个默认参数,程序不容易报错
def test1(*params, exp = 7):
    print('参数的长度是:', len(params), exp)
    print('第二个参数是:', params[1])
test1(1, '小甲鱼', 3.14, 5, 8, 3)

# 全局变量和局部变量

def discounts(price, rate): #局部变量
    final_price = price * rate
    return final_price
old_price = float(input('请输入原价:')) #全局变量
rate = float(input('请输入折扣:'))
new_price = discounts(old_price, rate)
print('打折后的价格是:', new_price)


# global:在函数内修改全局变量
count = 5
def MyFun():
    global count #修改全局变量count
    count = 10
    print(count)
MyFun()
print(count)

# 内嵌函数,内部函数整个作用域都在外部函数之内
def fun1():
    print('fun1正在被调用。。。。')
    def fun2():
        print('fun2正在被调用。。。。')
    fun2()
fun1()

# 闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。
def FunX(x):
    def FunY(y):
        return x * y
    return FunY
i = FunX(8)
print(type(i))
print(i(5))
print(FunX(8)(5))

# lambda:匿名函数
def ds(x):
    return 2 * x + 1
print(ds(5))
g = lambda x: 2 * x + 1
print(g(5))
f = lambda x, y : x + y
print(f(3,9))

# filter(function or None,iterable):过滤器
# 1.None:过滤非true的内容
print(list(filter(None, [1, 0, 5, False, True])))
# 2.筛选出迭代器中符合函数条件的数据
def odd(x):
    return x % 2
temp = range(20)
print(list(filter(odd, temp)))
print(list(filter(lambda x : x % 2, temp)))

# map(function,iterable):映射,将可迭代的序列中的每个元素作为函数的参数进行运算加工,返回所有加工后的元素组成新序列
print(list(map(lambda x : x * 2, range(5, 10))))

 

posted @ 2021-01-28 22:25  小太阳Sinimy  阅读(36)  评论(0编辑  收藏  举报