进击のpython

*****

嵌套函数&匿名函数


讲完作用域之后

对变量的作用范围有大致的了解了吗?

讲个稍微小进阶的东西吧

能够帮助你更加的理解全局和局部变量


  • 嵌套函数

    玩过俄罗斯套娃不?

    没玩过听过不?

    没听过?很好!我就喜欢你这种“大人物”

从小的一点一点的往大了装,一个嵌套一个

函数也可以这么玩~~~

msg = "我是全局变量"

def func():
msg = "我是函数func的局部变量" def func1():
msg = "我是函数func1的局部变量"
print(msg) func1()
print(msg) func()
print(msg)

结果是这个!能看懂不?

看不懂的继续看,看懂的可以跳到匿名函数了!

好,程序的执行步骤来了,现在来考考你吧

如果程序变为这样呢?输出结果是什么?自己动手敲敲

msg = "我是全局变量"

def func():
msg = "我是函数func的局部变量" def func1():
# msg = "我是函数func1的局部变量"
print(msg) func1()
print(msg) func()
print(msg)

行了,这个想明白了,就差不多了(想不明白继续想!)

谈下一话题了


  • 匿名函数

    啥叫匿名?不知道就是匿(ni 四声)名,对吧!(看,又学英语又学汉语的)

    在函数里,什么叫匿名呢?

    就是不给起名字!

    what???不给起名字???

    def ():

    这样????总觉得冥冥之中不对

    觉得不对就对了,因为这么写就不对

    先给个你熟悉的函数

    def calc(x, y):
    return x ** y print(calc(2, 5))

    能看明白吧,不执行了┗|`O′|┛ 嗷~~

    现在把他给整匿名了!

    那我们需要一个关键字来帮忙 lambda (都学多少关键字了?自己思考一下)

    lambda x, y: x ** y

    能看明白怎么变得不?看不明白就对比着写两遍!你就看出来了

    但是奥,有些人他就发现了问题

    我这要怎么调用???????

    还是要起个名字(所以我就觉得这个有点智障)

    func = lambda x, y: x ** y
    print(func(2, 5))

    有啥用呢?有个函数是这样的

    map(函数,可迭代对象)

    不用管什么是可迭代对象,这里可以放列表,懂吧

    这个函数的意思是把列表(可迭代对象)里的每一个值都拿出来执行一下前面的函数

    我们可以试试这个函数

    a = map(lambda x: x ** 2, [1, 2, 3, 4, 5])
    for i in a:
    print(i, end=" ")

是吧,把列表里的每个数都进行二次方操作了

别问为啥用循环打印,先记住!

这样,匿名函数的稍微用途就出来了,你可以不用像原先一样

先定义函数,再调用

而是现写现用(依旧感觉鸡肋!)

但是函数体只能写简单的,以及三元运算

a = map(lambda x: x ** 2 if x < 4 else 0, [1, 2, 3, 4, 5])
for i in a:
print(i, end=" ")

自己执行打印吧!


*十分鸡肋*
*可以装逼*

~~函数基础(三):嵌套函数&匿名函数~~的更多相关文章

  1. Python之路-函数基础&局部变量与全局变量&匿名函数&递归函数&高阶函数

    一.函数的定义与调用 函数:组织好的.可重复使用的.用户实现单一或者关联功能的代码段.函数能够提高应用的模块性和代码的重复利用率.Python提供了很多内置的函数,比如len等等,另外也可以根据自己的 ...

  2. python函数3-函数嵌套/递归/匿名函数

    2 .函数递归: 3.匿名函数

  3. js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存)

    js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存) 一.总结 1.闭包:就是在一个函数内部嵌套一个匿名函数,这个匿名函数可以访问这个函数的变量. 二.要点 闭包 闭包的相 ...

  4. 洗礼灵魂,修炼python(25)--自定义函数(6)—从匿名函数进阶话题讲解中解析“函数式编程”

    匿名函数进阶 前一章已经说了匿名函数,匿名函数还可以和其他内置函数结合使用 1.map map():映射器,映射 list(map(lambda x:x*2,range(10))) #把range产生 ...

  5. js循环函数中的匿名函数和闭包问题(匿名函数要用循环中变量的问题)

    js循环函数中的匿名函数和闭包问题(匿名函数要用循环中变量的问题) 一.总结 需要好好看下面代码 本质是因为匿名函数用到了循环中的变量,而普通方式访问的话,匿名函数的访问在循环之后,所以得到的i是循环 ...

  6. python函数基础:嵌套函数、作用域、匿名函数、高阶函数、递归函数

    嵌套函数: 1. 函数内部可以再定义函数 2. 函数只有被调用之后才会执行 看如下代码: age = 18 def func1(): age = 22 print(age) def func2(): ...

  7. Py修行路 python基础 (十三)匿名函数 与 内置函数

    一.匿名函数  1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是 ...

  8. Python3基础(4)匿名函数、装饰器、生成器、迭代器、内置函数、json&pickle序列化、软件目录开发规范、不同目录间模块调用

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

  9. python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件

    上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 ...

  10. go语言基础之defer和匿名函数结合使用

    1.匿名函数结合使用 示例1: package main //必须 import "fmt" func main() { a := 10 b := 20 defer func() ...

随机推荐

  1. Win10《芒果TV》商店版更新v3.2.7:修复下载任务和会员下载权限异常

    在第89届奥斯卡颁奖典礼,<爱乐之城>摘获最佳导演.女主.摄影等六项大奖,<月光男孩>爆冷获最佳影片之际,Win10版<芒果TV>迅速更新至v3.2.7,主要是修复 ...

  2. Win10《芒果TV》商店版更新v3.2.1:优化手机版卡顿,修复推送故障

    此版本是小版本更新,主要是修复上一版本发布后暴露的部分体验问题,以免进一步扩大影响,小幅修复后更新上线. 芒果TV UWP V3.2.1更新内容清单: 1.优化和修复列表预加载机制的本地保存丢失导致的 ...

  3. Android零基础入门第8节:HelloWorld,我的第一趟旅程出发点

    原文:Android零基础入门第8节:HelloWorld,我的第一趟旅程出发点 经过前面几期的学习,我们知道了Android的前世今生,也大致了解了Android的系统架构和应用组件,然后花了几期来 ...

  4. 长江存储32层3D NAND今年底准备好,预计2020年赶上世界前沿(有些ppt很精彩)

    集微网消息(文/刘洋)2017年1月14日,首届IC咖啡国际智慧科技产业峰会暨ICTech Summit 2017在上海隆重举行.本次峰会以“匠心独运 卓越创‘芯’”为主题,集结了ICT产业领袖与行业 ...

  5. UILabel范例实现代码如下

        #import "TWO_ViewController.h" #define SCREEN_Width [[UIScreen mainScreen] bounds].siz ...

  6. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发

    进行本文之前需要在数据库用户表里面增加一条用户数据,直接手动添加即可,未安全考虑密码一定要使用Md5加密后的,这里提供666666的Md5密文为(c831b04de153469d),本文完成登录模块的 ...

  7. 网站压力测试工具 Webbench简单介绍

    Webbech能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况.Webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量.Webbench不但 ...

  8. 解析《Effective Java》之多个构造器、Javabeans模式和Builder模式

    最近看<Effective Java>这本被很多同行称为神作的书,但是这本书很多地方缺少了举例不好懂,下面是关于我对书上知识的理解. 一.<Effective Java>中文版 ...

  9. vue数据加载等待组件

    关于loading组件的. loading.vue <template> <div class="loading"> <div class=" ...

  10. Python自学day-4

    一.字符串转为字典(eval):也可以用于转列表.集合等 s1 = "['name','leo']" s_list = eval(s1) #字符串转换为列表 print(s_lis ...