python基础---------函数

python中函数的定义和使用

基本格式

def <函数名> (<参数(0个或多个)>):

      <函数体>

      return <返回值>

(1)函数定义时,可以为某些参数指定默认值,构成可选参数

 (本人理解):有默认值的参数就叫做可选参数,这与C++中参数可以给定默认值的做法应该是相同的,当函数的参数表中含有可选参数时,该可选参数可以选择不进行传入,但是该参数在函数中存在默认值,可以直接进行使用

书写形式:

def <函数名>(<非可选参数>,<可选参数>):

      <函数体>

      return <返回值>

注意:python中要求,所有可选参数必须放在非可选参数之后

(2)可变参数传递

函数定义时,可以设计可变数量参数,即不确定参数总数量的参数

def <函数名>(<参数>,*b):

     <函数体>

     return <返回值>

*b可以是*a,*c等等

如果有这样一个函数

def f(a,*b):

    <函数体>

    return <返回值>

此时,该函数的参数个数是大于等于1的,即*b在函数中充当一个元素序列

(3)函数的返回值

-return保留字用来传递返回值

-函数可以有返回值,也可以没有,可以有return,也可以没有

-return可以返回0个返回值,也可以传递任意多个返回值

def fact(n,m=1):

    s = 1

    for i in range(1,n+1):

        s*=1

    return s//m,n,m

fact(10,5)

>>>(0, 10, 5)

a,b,c = fact(10,5)

print(a,b,c)

>>>0 10 5

return 关键字返回多个值时,返回的其实是一个元组

(4)全局变量和局部变量

规则1:局部变量和全局变量是不同变量

--局部变量是函数内部的占位符,与全局变量可能重名但是不通

--函数运算结束后,局部变量将被释放

--可以使用global关键字在函数内部使用全局变量,(global此关键字用于在函数内部声明,此变量是全局变量而不是局部变量)

即,如果在一段程序中,已经有了一个全局变量s,而我们在接下来的一个函数中,想要使用这个全局变量进行函数内部的运算的话,那么,在函数内部,global s进行这样的操作即可

(通过此方可以在函数内部进行对外部变量的修改)

规则2:局部变量如果是组合数据类型,而且未在函数内部创建,那么该局部变量等同于全局变量

注意:如果一个组合数据类型的变量在函数外有定义,并且其在函数内部也进行了真实创建,那么该变量在函数内部就是该函数的局部变量,但是在函数内部对其做出的改变并不能影响到函数外部,即相当于其在函数内部被重新创建,此时函数内部的仅仅是一个占位符,与外部的那个全局变量完全不同

使用规则:
--基本数据类型,无论是否重名,局部变量与全局变量不同

--可以在函数内部通过global关键字声明使用全局变量

--组数据类型,如果局部变量未真是创建,则是全局变量

(5)lambda函数

功能:返回一个函数名作为结果

--lambda函数是一种匿名函数,即没有名字的函数

--lambda函数用于定义简单的.能够在一行内表示的函数

使用形式:

<函数名>  = lambda<参数>:<表达式>

注意:冒号后只能跟表达式,而不可以接函数体

例如:

f = lambda x,y:x+y

f(10,15)

25

f = lambda :"lambda函数"

print(f())

lambda函数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜡笔007

等俺发达了赚钱养你[doge]

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值