python 函数一

1.函数定义

1.1.无参函数: def 函数名():
def myFun():
    print('这是python无参参数')

调用:myFun() —–>这是python无参参数

1.2.有参函数: def 函数名(参数1,参数2,…..参数n)
def calc(para1,para2,para3):
    print(para1 + para2 * para3)

调用:calc(2,5,4) —–>22

2. 函数的返回值

函数的返回值直接return即可

3.函数的文档与注释

def calc(para1,para2,para3):
    '这是函数文档'
    # 这是函数注释
    return (para1 + para2 * para3)
-----------------------
return直接返回:print(calc(2,5,4))-->22
打印函数的文档:print(calc.__doc__)---->这是函数文档 ('用两个_')

4. 关键字参数和默认参数

关键字参数为了防止参数顺序传错而在调用时指定参数名
默认参数给参数默认值防值没有传参而到导致错误

-------关键字参数---------
def myFun(name,age):
    print(name + " 是 " + age + '岁了')
------------
myFun('3','小明')
myFun(age = '3',name = '小明')
-------默认参数---------
def myFun1(name = '小明',age = '3'):
    print(name + " 是 " + age + '岁了')
----------
myFun1()
myFun1('小明','3')

5.可变参数(收集参数)

def changeFun(*para,name):
    print(name)
    sum = 0
    for n in para:
        sum = sum + n
    return sum
---------
print(changeFun(1,2,3,4,5,name='这是可变参数'))
-----------可变参数和关键字混用可变参数要放在关键字参数前(下面会报错)
def changeFun(name,*para):
    print(name + "可变参数有 " , len(para))
-------
changeFun(name='这是',1,2,3,4,5)

6.全局变量和局部变量

在函数中给全局变量重新赋值试图去改变全局变量的值必须使用 global 关键字申明

num = 3
def changeNum():
    global num
    num = 20
    return num
------
print(changeNum())
20

7. 内嵌函数

函数中可以嵌套函数

def fun1():
    print('这个第一个函数')
    def fun2():
        print('这是个内嵌函数')
    fun2()#fun1调用fun2
fun1()
--------
这个第一个函数
这是个内嵌函数

如果内嵌函数用外部函数的变量使用nonlocal

def fun1():
    a = 10
    def fun2():
        nonlocal a
        a *= a
        return a
    return fun2() 
-------
print(fun1())
100

8.闭包

def fun1(num1):
    def fun2(num2):
        def fun3(num3):
           return num1 + num2 * num3
        return fun3 # 是fun3不是fun3()
    return fun2 #是fun2不是fun2()
--------
print(fun1(5)(3)(5))
20
def fun1(num1):
    def fun2(num2):
        def fun3(num3):
           return num1 + num2 * num3
        return fun3(5) # 是fun3()不是fun3
    return fun2(3) #是fun2()不是fun2
----------
print(fun1(5))
20

9.lambda表达式

使用lambda表达式替代函数更加简洁省去起函数名

def add(a,b):
    return a + b
print(add(5,10))
===>等价于
c = lambda a,b:a+b
print(c(5,10))

10.filter 和 map用法

filter(x,y) 按照x条件把y过滤掉
map(x,y) 按照x条件操作y

a = list(filter(lambda x : x % 2, range(10)))
print(a) #把0到9能整除2的过滤掉
[1, 3, 5, 7, 9]
--------------
b = list(map(lambda x : x * 2, range(10)))
print(b)#把0到9每个数乘以2
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值