python day 7 知识点

函数作用域

对于一个变量,当他要调用数据时,它的寻找范围一定是自己所在的那个小代码块,找不到后,往上升一级后继续找,以此类推,直到找到,进行数据调用。由此可以知道,越靠近局部代码块的函数,作用域越小。

匿名函数

lambda x:x+1
匿名函数有以下几个特点:

  1. 它会自动将函数体的计算值作为返回值返回,通常也没有名字
  2. 匿名函数通常和其他函数联合使用,不会独立存在
  3. 匿名函数的逻辑非常简单,通常只是一个计算结果
  4. 在匿名函数中,定义过的形式参数都必须在计算式中参与计算
  5. 一次的多个返回值会组成元组返回

编程的方法论

  1. 面向过程
    找到解决问题的出口,按照一个固定的流程去模拟解决问题的流程
  2. 函数式编程(最早出现的编程方法)
    函数式 = 编程语言定义的函数+数学定义的函数
  3. 面向对象

函数式编程

def calc(n) :
	n = n + 1
	return n

这就是函数式编程的典型方法

高阶函数

高阶函数满足下列条件之一:

  1. 把函数当做参数传给另一个函数
  2. 函数的返回值汇总包含函数

尾调用

一言以蔽之,就是在函数的最后一步调用另外一个函数

	def bar(n) : 
		return n

map函数

典型模板:

def map_test(func,array) : 
	ret = []
	for i in num_l : 
		res = func(i)
		ret.append(res)
	return ret

map函数的终极用法:

map(lambda x : x-1,num_l)		#第一个是运算函数,第二个值列表

一般来说,第二个参数是可迭代对象就可以使用

filter函数

def show(n) : 
	return n.endwith('sb')
def filter_test(func,array) : 
	ret = []
	for p in array : 
		if not func(p)
			ret.append(p)
	return ret

filter函数的终极用法 :

filter(lambda n : not endswith('hh'),movie_people)

reduce函数

def reduce_test(func,array,init = None) : 
	if init is None : 
		res = array.pop(0)
	for num in array : 
		res = func(res,num)
return res

reduce函数的终极用法:

reduce(hhh,num_l)

注意,使用reduce函数时,要使用一个引用工具进行调用:

from functools import reduce

三种常用函数的总结

map函数——处理序列中的每个元素,得到一个列表的迭代器。该迭代器的对应列表元素个数及相应位置与原来一样
filter函数——遍历序列中的每个元素,判断每个元素并得到相应的布尔值。若为True,则留下来;若为False,则将其过滤,最终也得到一个列表的迭代器
reduce函数——处理每一个可迭代对象的元素,对这些元素做合并操作

内置函数

 - abs()				#求绝对值
 - all()				#判断可迭代对象的元素对应的布尔值是否全为True
 - any()				#判断可迭代对象的元素对应的布尔值有没有True
 - bin()				#把十进制数转为二进制数
 - bytes()				#将变量转换为字节内容,并输出其形式
 	注:
 	如果 source 为整数,则返回一个长度为 source 的初始化数组;
	如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
	如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
	如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
	如果没有输入任何参数,默认就是初始化数组为0个元素。
 - l.decode('utf-8')
 - chr()				#输出十进制数字对应的ASCII码符号
 - dir()				#打印某一类型的内置方法 
 - divmod()				#取余运算方法,同时输出商和余数
 - eval()				#将字符串中的数据结构提取出来,转换为字典形式;也可以执行字符串当中的数学运算
 - hash()				#输出一个变量对应的哈希值(哈希运算用于验证程序是否被人修改过) 
 - help()				#输出内置方法的解释文字
 - hex()				#把十进制转换为十六进制
 - oct()				#把十进制转换为八进制
 - isinstance()			#判断一个数据是否为括号内指定的数据类型
 - globals()			#判断一个数据是否为一种指定的数据类型
 - locals()				#打印局部变量
 - max()				#取出数据中的最大值
 - min()				#取出数据中的最小值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值