day-函数进阶

函数知识点2

1.变量作用域----变量在定义完成后可以使用的范围

分为:全局变量与局部变量

1)全局变量

没有定义在函数里面或者类里面的变量都是全局变量。

作用域:从定义开始,到程序结束(到任何位置)

a=10

for x in range():
   print(a)      #任何位置都可以用
   
若:
for x in range()
b=10       #x、b都是全局变量

2)局部变量

在函数中的变量就是局部变量(定义在类中的变量是属性)

作用域:从定义开始到函数结束

(形参就是局部变量)

def fun1(c):
    d=10      #c、d都是局部变量,不能在函数外部使用。

3)变量存储方法

全局变量保存在全局栈区间(程序结束时才会被释放),局部变量默认是保存在临时栈区间中(创建函数时创建出来,函数调用结束会自动释放)

函数中定义变量前加global关键字,让函数中定义变量可以保存在全局栈区间中。

x=1
def fun1():
    y=200
    golbal z
    z=100
#x、z保存在全局栈区间,y保存在局部栈区间

如果想要在函数里面修改一个全局变量值,必须加global 对变量进行说明

4)函数参数的确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aksrgB3k-1659444519709)(E:\BaiduSyncdisk\前锋学习\第三周\day2-函数进阶\QQ截图20220802181419.jpg)]

1.调用函数时,实参到底给什么样的数据,由什么决定?

​ 由参数在函数体中的使用方式来决定。

2.实参高阶函数----函数的参数是函数-----(相当于数学中的复合函数)

如果一个参数是函数,传参的时候有两种方法:

方法一:用普通函数的函数名

方法二:使用匿名函数

3.匿名函数

实质:只能实现简单的功能,用一条语句来实现的功能,本质还是函数。

语法:函数名=lambda 形参列表:返回值

相当于: def 函数名(形参列表):

​ return

#定义一个函数求两个数的和

sum2=lambda num1,num2 :num1+num2
print(sum2(10,20))
print(sum2(num1=100,num2=200))

运用:在给实参高阶函数传参的时候使用。

def fun1(x):
    print(x(10,20)+20)
# X是一个函数,有两个参数,有一个数字对应的返回值
def temp(m,n)
return12.3  

fun1(temp1)
fun1(lambda m,n:12)----匿名

能使用匿名函数就使用匿名函数,不行才用普通函数

4.实参高阶函数的运用:

1.max、min、sorted

(低级用法)max(序列)----求序列中元素的大小,求出最大值

(高级用法)max(序列,key=函数)-----按照函数指定的比较规则,比较元素的大小求出最大值

函数的要求:1.必须只有一个参数(参数代表序列中的每一个元素)

2.需要一个返回值(返回值就是比较对象)

若求num的最值
nume=[10,2,3,3,245,566]
result=max(nums,key=lambda item:item)
print(result)

比较num中个位数最大的元素
result=max(nums,key=lambda item:item%10)

nums中各个位数之和最大的元素(用函数求解)
方法一:
nums = [102, 19, 48, 221, 52]
result=max(nums,key=lambda item: sum(int(x) [for x in str(item)]))
print(result)


方法二:
def temp(item):
	sum1=0
    for x in str(item):
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值