scoping作用域,anonymous function匿名函数,built-in functions内置函数
作用域练习1
def test1():
print('in the test1')
def test():
print('in the test')
return test1
res = test()
print(res()) #res = test1地址 函数没有return,默认返回None
作用域练习2
name = 'alex'
def foo():
name = 'lhf'
def bar():
name = 'wupeiqi'
print(name)
return bar
a = foo()
print(a)
a()
作用域练习3
name = 'alex'
def foo():
name = 'lhf'
def bar():
name = 'wupeiqi'
print(name)
def tt():
print(name)
return tt
return bar
bar = foo()
tt = bar()
print(tt)
print(tt())
#上面几句=print(foo()()())
lambda匿名函数
lambda匿名函数语法规则自定义函数名 = lambda 形参:要实现的功能子代码lambda函数是匿名函数,用来赋值给具体函数,在函数段中调用具体函数,‘:’后为实际功能代码例如:f = lambda x:name+'_sb'
函数式编程
#把函数当作参数传给另一个函数
def foo(n):
print(n)
def bar(name):
print('my name is %s' %name)
foo(bar('alex'))
高阶函数
#高阶函数定义:满足 把函数当做参数传给另一个函数/返回值中包含函数
#函数式编程
#编程三方式:面向过程(详细写出函数编程各过程),面向函数(无变量赋值),面向对象
#把函数当作参数传给另一个函数
def foo(n):
print(n)
def bar(name):
print('my name is %s' %name)
foo(bar('alex')) # 返回值中包含函数
def bar():
print('from bar')
def foo():
print('from foo')
return bar
n = foo()
n()
def handle():
print('from handle')
return handle
h = handle()
h()
python所有内置函数:引用自网页。
举例应用:如bytes(),map(func(),*iteration), filter(func(),*iteration), reduce(func,*iteration,init),eval()
bytes()用什么方式编码,就用什么方式解码
# name='你好'
# print(bytes(name,encoding='utf-8'))
# print(bytes(name,encoding='utf-8').decode('utf-8'))
#
# print(bytes(name,encoding='gbk'))
# print(bytes(name,encoding='gbk').decode('gbk'))
# print(bytes(name,encoding='ascii'))#ascii不能编码中文
函数式编程,map内置函数用法(最终版)
map函数功能:map(func,*iteration)函数中两个参数分别代表:逻辑+函数,每次运行把后面的参数传到前面的逻辑运行)
num1 = [1,2,10,5,3,7]
def add_one(x):
return x+1
lambda x:x+1 这行代码等于上面两行
def reduce_one(x):
return x-1 num = [1,2,10,5,3,7]
def map_test(func,array):
ret = []
for i in array:
res = func(i)
ret.append(res)
return ret
print(num)
print(map_test(lambda x:x+1,num))
print(map_test(lambda x:x**2,num))
print(map_test(lambda x:x-1,num))print(map_test(lambda x:x+1,num))
res = map(lambda x:x+1,num)
print('内置函数map,处理结果',list(map(lambda x:x+1,num))) map举例,字符串
msg = 'yuyukun'
print(list(map(lambda x:x.upper(),msg))) filter函数用法,filter(func(),*iteration), 在函数中,filter()依次用for循环依次遍历iteration中的参数,用func()中的逻辑来判断,作bool运算,正确则返回True
movie_people = ['alex_sb','wupeiqi_sb','linhaifeng','yuanhao_sb']
print(filter(lambda n:not n.endswith('sb'),movie_people))
res = filter(lambda n:not n.endswith('sb'),movie_people)
print(list(res)) reduce函数
num = [1,2,3,100]
def reduce_test(func,array,init=None):
if init == 0:
res = array.pop(0)
else:
res = init
for num in array:
res = func(res,num)
return res
print(reduce_test(lambda x,y:x*y,num,10))#10=初值
reduce函数 把两个完整的序列,合并并压缩到一起(如下就是初值1和num中元素加在一起)
from functools import reduce
num = [1,2,3,100]
print(reduce(lambda x,y:x*y,num,1))
max,min内置函数
l={1,2,3,4,5}
print(max(l))
print(min(l))
map,reduce,filter函数总结
# map()处理序列中的每个元素,得到的结果是一个‘列表’,该‘列表’元素个数及位置与原来一样
num_l = [1,2,3,4,5]
def map_test(func,array): #func=lambda x:x+1 arrary=[1,2,10,5,3,7]
ret=[]
for i in array:
res=func(i) #add_one(i)
ret.append(res)
return ret
print(map_test(lambda x:x+1,num_l))
res=map(lambda x:x+1,num_l)
print('内置函数map,处理结果',res)
print(list(res))
msg='linhaifeng'
print(list(map(lambda x:x.upper(),msg))) people=[
{'name':'alex','age':1000},
{'name':'wupeiqi','age':10000},
{'name':'yuanhao','age':5000},
{'name':'yuyukun','age':18}
]
#filter遍历序列中的每个元素,判断每个元素得到布尔值,如果是True则留下来
print(list(filter(lambda p:p['age']<=18,people))) #reduce:处理一个序列,然后把序列进行合并操作
from functools import reduce
print(reduce(lambda x,y:x+y,range(1,2),1))
print(reduce(lambda x,y:x+y,range(100),100))
eval()函数功能,把字符串中的数据类型提取出来
# eval()功能1:提取字符串中的数据类型
dic = {'name':'alex'}
dic_str = str(dic)
print(dic_str)
print(eval(dic_str))
d1 = eval(dic_str)
print(d1['name'])
# eval()功能2:将字符串中的数学运算再进行一遍
express = '1+2*(3/3-1)-2'
print(express)
print(eval(express))
scoping作用域,anonymous function匿名函数,built-in functions内置函数的更多相关文章
- [JSP][JSTL]页面调用函数--它${fn:}内置函数、是推断字符串是空的、更换车厢
页面中调用函数--之${fn:}内置函数 函数描写叙述 fn:contains(string, substring) 假设參数string中包括參数substring,返回true fn:contai ...
- 【Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数】
一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(Firs ...
- Python--函数对象@命名空间与作用域@包函数@装饰器@迭代器@内置函数
一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(Firs ...
- day16 函数的用法:内置函数,匿名函数
思维导图需要补全 : 一共有68个内置函数: #内置:python自带 # def func(): # a = 1 # b = 2 # print(locals()) # print(globals( ...
- python基础--递归、三元表达式、列表(字典)生成式、匿名函数、常用的内置函数
函数的递归:函数在调用阶段直接或者间接的又调用自身 递归的两个阶段: 1.回溯:就是一次次重复的过程,这个重复的过程必须建立在每一次重复问题的复杂度都是应该下降的,直接有一个最终的结束条件(这个结束条 ...
- Day3 - Python基础3 函数、递归、内置函数
Python之路,Day3 - Python基础3 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...
- 第七篇 python基础之函数,递归,内置函数
一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...
- Python基础3 函数、递归、内置函数
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...
- Python之路【第四篇】: 函数、递归、内置函数
一. 背景提要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码 while True: i ...
随机推荐
- 接口文档模板(Markdown)
效果 目录 1. 查询指定项目属性接口 1. 查询指定项目属性 接口功能 获取制定项目的分类信息 URL http://www.api.com/index.php 支持格式 JSON HTTP请求方式 ...
- 联盟链初识以及Fabric环境搭建流程
这篇文章首先简单介绍了联盟链是什么,再详细的介绍了Fabric环境搭建的整个流程. 区块链分类: 以参与方式分类,区块链可以分为:公有链.联盟链和私有链. 定义: 我们知道区块链就是一个分布式的,去中 ...
- 为什么会出现container/injection的思想?
1.容器的历史 容器概念始于 1979 年提出的 UNIX chroot,它是一个 UNIX 操作系统的系统调用,将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只能访问到这个新的 ...
- 两道面试题,带你解析Java类加载机制
文章首发于[博客园-陈树义],点击跳转到原文<两道面试题,带你解析Java类加载机制> 在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Gr ...
- ireport使用
首先需要下载ireport,可到https://zh.osdn.net/projects/sfnet_ireport/releases/下载,可能打开速度有点慢,耐心等待下,里面有各个版本,可自行选择 ...
- 索引(B-树)
前言 本文是在讲述什么样的数据结构适合作为索引,以及其适合作为索引的原因.而阅读本文需要对B树和B+树结构有稍微的理解.以及需要对磁盘操作知识有稍微的了解.对于磁盘操作的相关知识,在文章尾部的链接文章 ...
- JS--reload 重新加载 true参数
location.reload() 作用是用来重新加载当前显示的页面. 如果调用reload()时不传递参数,页面就会以最有效的方式重新加载. 也就是说,如果页面自上次请求以来并没有改变过,页面就会从 ...
- Eureka的使用
一.项目配置文件:application.yml #------ eureka配置,默认不开启,如需使用rest负载模式需开启 start ------------- eureka: instance ...
- char与char的区别
char与varchar的区别 : char (13)长度固定, 如'www.qq.net' 存储需要空间 12个字符: varchar(13) 可变长 如'www.qq.net' 需要存储空间 9字 ...
- JavaWeb基础-过滤器监听器
过滤器 1定义:过滤器是一个服务器的组件,他可以截取用户端的请求与响应信息,并对这些信息进行过滤;过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息. 2过滤器的工作原理: 3过滤器 ...