python3 函数的定义与使用

一、函数的特点与定义

特点:实现特定功能;代码复用

定义:

def <函数名>(<参数>):   #所指定的参数是一种占位符,作为输入
    <函数体>
    return <返回值>    #输出

二、函数的参数传递

1.参数的个数:可以没有,可以有一个或多个,无论哪种情况,函数名后的():必须有

2.可选参数传递:非可选参数必须在可选参数前面;可选参数可以理解为函数定义时指定默认值的参数。

def f(s,a=1):   #a为可选参数
    r=0
    for i in range(s+1):
        r+=i
    return r//a
z=f(4,2)
print(z)   ##结果为:5

3.可变参数传递:参数总数量不确定,*b

def fact(n,*b):
    s=1
    for i in range(1,n+1):
        s*=i
    for item in b:
        s*=item
    return s
z=fact(10,3,5,8)
print(z)  ##结果为:435456000
def fact(n,*b):
    s=1
    for i in range(1,n+1):
        s*=i
    for item in [3,5,8]:
        s*=item
    return s
z=fact(10)
print(z)        #和左边等效

4.参数传递两种方式:位置传递和名称传递(以2.2中的例子为基础)

z=f(4,2)#位置传递
print('z={}'.format(z))
x=f(a=2,s=4)#名称传递
print('x={}'.format(x))
结果为:
z=5
x=5

三、局部变量和全局变量

区别:

1.局部变量是函数内部的占位符,可以和全局变量重名但是不同的变量

2.函数运算结束后,局部变量被释放掉

3.保留字global在函数内部声明全局变量

4.局部变量为组合数据类型且为创建时等于全局变量

l=['f','F']
def func(a):
    l.append(a)
    return
func('z')
print(l)

结果为:['f', 'F', 'z']

函数func()内没有创建l,l.append()对全局变量l进行操作,即改变了全局变量l
l=['f','F']
def func(a):
    l=[]
    l.append(a)
    return
func('z')
print(l)
结果为:['f', 'F']
函数func()内创建l,l.append()对函数内定义的局部变量l进行操作,此l非彼l(即同名但不是一个变量),函数结束后此l被释放,输出l为彼l

四、lambda函数

lambda函数用于定义简单的、可以在一行内表示的函数,是没有名字的函数,也叫匿名函数。

形式: <返回值>=lambda<参数>:<表达式>

>>> func=lambda x,y:x**y
>>> func(3,4)
81
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值