~~函数基础(三):嵌套函数&匿名函数~~
进击の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=" ")
自己执行打印吧!
*十分鸡肋*
*可以装逼*
~~函数基础(三):嵌套函数&匿名函数~~的更多相关文章
- Python之路-函数基础&局部变量与全局变量&匿名函数&递归函数&高阶函数
一.函数的定义与调用 函数:组织好的.可重复使用的.用户实现单一或者关联功能的代码段.函数能够提高应用的模块性和代码的重复利用率.Python提供了很多内置的函数,比如len等等,另外也可以根据自己的 ...
- python函数3-函数嵌套/递归/匿名函数
2 .函数递归: 3.匿名函数
- js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存)
js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存) 一.总结 1.闭包:就是在一个函数内部嵌套一个匿名函数,这个匿名函数可以访问这个函数的变量. 二.要点 闭包 闭包的相 ...
- 洗礼灵魂,修炼python(25)--自定义函数(6)—从匿名函数进阶话题讲解中解析“函数式编程”
匿名函数进阶 前一章已经说了匿名函数,匿名函数还可以和其他内置函数结合使用 1.map map():映射器,映射 list(map(lambda x:x*2,range(10))) #把range产生 ...
- js循环函数中的匿名函数和闭包问题(匿名函数要用循环中变量的问题)
js循环函数中的匿名函数和闭包问题(匿名函数要用循环中变量的问题) 一.总结 需要好好看下面代码 本质是因为匿名函数用到了循环中的变量,而普通方式访问的话,匿名函数的访问在循环之后,所以得到的i是循环 ...
- python函数基础:嵌套函数、作用域、匿名函数、高阶函数、递归函数
嵌套函数: 1. 函数内部可以再定义函数 2. 函数只有被调用之后才会执行 看如下代码: age = 18 def func1(): age = 22 print(age) def func2(): ...
- Py修行路 python基础 (十三)匿名函数 与 内置函数
一.匿名函数 1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是 ...
- Python3基础(4)匿名函数、装饰器、生成器、迭代器、内置函数、json&pickle序列化、软件目录开发规范、不同目录间模块调用
---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...
- python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件
上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 ...
- go语言基础之defer和匿名函数结合使用
1.匿名函数结合使用 示例1: package main //必须 import "fmt" func main() { a := 10 b := 20 defer func() ...
随机推荐
- ADB 基础命令使用
1.adb shell(>=2个设备显示:error: more than one device/emulator,仅连接一个设备可用) adb -d shell 只运行在真实设备中 adb - ...
- 不要困在自己建造的盒子里——写给.NET程序员(附精彩评论)
此文章的主旨是希望过于专注.NET程序员在做好工作.写好.NET程序的同时,能分拨出一点时间接触一下.NET之外的东西(例如10%-20%的时间),而不是鼓动大家什么都去学最后什么都学不精,更不是说. ...
- 因内存释放而引发的中断问题,dll中new的内存释放问题
调试程序,每次关闭一个界面就会弹出中断错误. 为了确认这个问题,我将出现问题那一段代码中的函数一个个屏蔽,以此来确认到底哪个函数出现问题,缩小范围: 最后我发现,只要屏蔽掉checkIfFingerI ...
- Android零碎知识之Style and Theme
Android的styles资源文件中存在了我们在应用中定义的各种style,它们都是以style开始的元素,包含许多属性的集合.但我们一般般它们分为style和theme,那它们有什么区别呢? 一. ...
- Android实现dialog时候弹出软键盘dialog移位问题
Window win = getWindow(); WindowManager.LayoutParams params = win.getAttributes(); win.setSoftInputM ...
- Hadoop集群(第6期)JDK和SSH无密码配置
1.Linux配置java环境变量 1.1 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录,执行命令 ./jdk-6u14-linux-i586.bi ...
- Hibernate注解(一):基本注解
在Hibernate中使用注解,主要是为了替代映射文件,完成“类到表,属性到字段”的映射.JPA提供了一套功能强大的注解.Hibernate直接使用了JPA的这套注解.当然,对于JPA中的一些不足,H ...
- 【面试】MySQL 中NULL和空值的区别?
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 01 小木的故事 作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和空值.那 ...
- css之rem布局
rem介绍和原理网上都是,这里不具体介绍 以iphone6设计稿 let htmlWidth = document.documentElement.clientWidth || document.bo ...
- 大白话五种IO模型
目录 一.I/O模型介绍 二.阻塞I/O模型 2.1 一个简单的解决方案 2.2 该方案的问题 2.3 改进方案 2.4 改进后方案的问题 三.非阻塞I/O模型 3.1 非阻塞I/O实例 四.多路复用 ...