Python 函数

目录

一 函数介绍

        1 定义

        2 调用

二 函数类型

三 局部变量与全局变量

四 返回值return

五 参数

        1 缺省参数

        2 不定长参数

        3 参数顺序

六 拆包

七 递归函数

八 匿名函数lambda

九 列表推导式


一 函数介绍

        1 定义

def 函数名():
    实现的功能代码

        2 调用

                通过函数名()来调用

二 函数类型

函数根据有没有参数,有没有返回值,可以相互组合,一共有4种

  • 无参数,无返回值:可实现输出打印的功能
  • 无参数,有返回值:可实现采集数据的功能
  • 有参数,无返回值:可实现 对某些变量设置数据而不需结果 的功能
  • 有参数,有返回值:可实现 数据处理并需要结果 的功能

三 局部变量与全局变量

        局部变量:函数内部定义的变量,只对当前函数生效

        全局变量:函数外部定义的变量,对全部函数生效

        修改全局变量:

                函数中出现于全局变量同名变量时,相当于新建了一个局部变量;

                函数中想要修改全局变量的值,使用 global 变量1,变量2

四 返回值return

一个函数中只要有一个return被执行,函数即结束

return 返回多个数据:

        1 只要能存储多个数据的类型如:列表、元组、字典,return就可以一次性返回多个数据,如:列表return[1,2],元组return (1,2),字典return{'key':'value'}

        2 return后多个数据,默认为元组,如:return 1,2

五 参数

        1 缺省参数

形参:定义函数时小括号中用于接收参数的为形参

实参:调用函数时用于传递给形参的为实参

缺省参数:在形参中默认有值的参数,称之为缺省参数,带有默认值的参数一定要位于参数列表的最后面,如下:

def info(name,age=18):
    print('姓名为%s'%name)
    print('年龄为%d'%age)
info('zhangsan')

        2 不定长参数

一个函数能处理比声明时更多的参数, 这些参数叫做不定长参数,声明时不会命名。

语法:

def functionname([formal_args,] *args, **kwargs):
   function_suite
   return [expression]

加星号(*)的变量args会存放所有未命名的变量参数,args为元组

加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典

def fun(a, b, *args, **kwargs):
    print("a = %d" % a)
    print("b = %d" % b)
    print("args:")
    print(args)
    print("kwargs: ")
    for key, value in kwargs.items():
        print("%s=%s" % (key, value))
fun(1, 2, 9, 8, name='zhangsan', age=18)

print('-'*30)

c=(1,2)
d={'name':'zhangsan'}
fun(1,2,*c,**d)

        3 参数顺序

缺省参数应在 *args的后面, 如果有**kwargs的话,**kwargs必须在最后,如:

def fun(a, b, *args,name='lisi',age=18, **kwargs):
    pass

六 拆包

元组、列表、字典等都可以进行拆包,拆的数据的个数要与变量的个数相同,否则程序会异常

元组拆包:

 列表拆包:

 字典拆包:

七 递归函数

调用本身的函数即递归函数

应用:阶乘

def CalNum(num):
    if num>1:
        result = num*CalNum(num-1)
    else:
        result=1
    return result

print(CalNum(5))

八 匿名函数lambda

语法:lambda [变量1,变量2,...,变量n]:表达式

sum = lambda a, b: a + b
print("两数之和为 : %d" % sum(10, 20))

应用:匿名函数作为参数传递

def fun(a, b, c):
    print("a = %d" % a)
    print("b = %d" % b)
    print("result = %d" % c(a, b))

fun(1, 2, lambda x,y:x+y)

九 列表推导式

a=[x for x in range(2)]
b=[x for x in range(1,10,2) if x%2==0]  # range(起始,结束,间隔)
c=[(x,y) for x in range(2) for y in range(3)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值