python 内置函数 与 匿名函数 lambda

时间:2022-03-08 21:14:58

内置函数

 

截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。

python 内置函数 与 匿名函数 lambda

 

 

 1 作用域相关  2: locals()  globals()

基于字典的形式返回局部变量和全局变量

globals() 全局作用于中的变量    全局
locals() 局部作用域变量 本地

在外部执行 --------locals() globals() 是一样的
在局部 函数内执行
------locals() 是局部的变量 函数内的名字 ,globals() 始终不变

 

2 迭代器,生成器  3:

range()--------一个可迭代对象

next() ----------

iter() ------------

注意 在python里要少使用 __xxx__() 的方法 内置的特殊成员
 

3 其他函数 12:

 

 

字符串类型 代码的执行 3

 

# 执行了 字符串 数据类型 的python代码

exec() 没有返回值 -----执行语句

eval() 有返回值
------求值语句 # import os 检测有没有 判断

compile(
'hello') --------交互式语句

# 编译 compile(code,'','exec')
# 需要对某个字符串类型的python代码多次执行的时候,需要用compile先编译一下 ----字节码

 

 输入 输出 2

input()   ----   py2中 raw_input 和 py3 的 input 一样

print(value,file,sep=‘’,end=‘\n’,flush=False)

sys.stdout
-->>输到屏幕终端上

===================
本来print() 会最后一起写入

sys.stdout.flush
====>> 立刻写 实时写
===================
import time
import sys

f
=open(r'1.txt','w',encoding='utf-8')
for i in range(0,101,2):
time.sleep(
0.1)
char_num
= i//2 #打印多少个#
per_str = '\r%s%% : %s'%(i,'|'*char_num)
print(per_str,end='', file=sys.stdout, flush=False)

print('*_*','A','^_^','@ @',sep='|',file=f,end=' ',flush=True)

 

内存相关  2

内存相关

hash() 得到一个哈希值
------ 用来查询 直接有对应的hash内存---读取数据

数据库

id() 身份运算
----- is 不仅比较数据值是否相等 还会比较 内存指向

 

  文件操作 

open(file,mode='w',encoding='utf-8')



模块导入
 __import__('time')


帮助模块

help()

调用相关  

callable()-----看看能不能被调用--函数

查看内置属性 

dir()






5 数值相关的内置函数 14:

数学运算相关 7个

 
abs() 求绝对值

divmod()
分页应用 求整 并且 求余 (商,余)

round(
2.3455,3) 精确到小数后的第几位

pow(x,y,z) x
**y%z

sum(iterator,start) 求和
---尽量用迭代器 一个一个的计算 | start 本钱本息 初始值

min()
print(min([1,-5,3],key=abs)) # key是一个函数 用函数来限定 key的规则

max()
print(max([1,-5,3],key=abs)) # key是一个函数 用函数来限定 key的规则
 
数据类型 4个

bool() -----布尔值
int()
float()
complex() ----复数

 

进制转换 3个

bin()
oct()
hex()

 



6 数据类型相关 24:


序列 13

列表和元组

# list()

# tuple()
相关内置函数

reversed(iterator)
---- 返回一个生成器

li
=[1,2,3,4]
li
=list(reversed(li))
print(li)

slice(
1,5,2) ----- 切片模型
字符串 bytes 9

str()


format() 将数值进行格式化显示

# print(format('Hello','<10')) # 左对齐
#
print(format('Hello','>10')) # 右对齐
#
print(format('Hello','^10')) # 居中

bytes()

# by=bytes(s,encoding='gbk') # 网络传输 只能传送字节 ---需要转换 为 bytes
#
my_str=by.decode('gbk') 转换回去

bytearray

# s='alex'
#
ret=bytearray(s,encoding='utf-8')
#
print(s,id(s))
#
ret[0]=65
#
s1=ret.decode('utf-8')
#
print(s1,id(s1))

memoryview()

# ret = memoryview(bytes('你好',encoding='utf-8'))
#
print(len(ret))
#
print(bytes(ret[:3]).decode('utf-8')) # 切片不会新建一个列表
#
print(bytes(ret[3:]).decode('utf-8'))

ord('A')
-->> 转换为ascii码
chr(
97) -->> 转换为字符

ascii()
---->>
# print(ascii('你好')) #'\u4f60\u597d'

repr()
----%r 格式化输出

 

数据集合 3

-数据集合 3

dict()


set()

frozenset()
---- 可以哈希

 

相关内置函数 8

 

all() 所有为真的时候才是真的
any() 有任何一个为真 就为真


zip(iter1,iter2,iter3,..)

dic
={'a':2,'b':3}
li
=[1,2,3]

print
(list(zip(dic,li)))

sorted(iterator,key
=len,reverse=False) --- 函数有返回值,生成一个新的列表

li.sort()
--->> 原列表会改变


len()

map()

enumerate()

filter()

# reduce


 

 

 注意  :与lambda函数经常一起使用的: map filter reduce zip enumerate

 

filter  条件过滤

filter( lambda n:n%2==0 ,iterator)

li=[' ','a',(1,2),{1,2},'D',[],{},None]

def f(data):
if type(data)==str:
if data.strip(): # not data.isspace ===== 空格.strip()-->> 变成空''
return data
elif data:
return data

filter_0
=filter(f,li)
print(list(filter_0))

map 新计算规则 映射关系 + 数列


li=[1,2,3,4,5,6,7]

re
=map(lambda n:n**2 , li)
print(list(re))

 

enumerate() 增加序号

se={'a':1,'b':3,'c':7}

for num,goods in enumerate(se,start=10):
print(num+1,goods,se[goods])

 

reduce() 累加

from functools import reduce

li
=[1,2,3,4,5,6,7,8,9,10]
print(reduce(lambda x,y:x+y,li,10))
 

 

zip() 拉链
---  key ,value ===>> 元组 用来比较 键值对    zip() 函数的返回值是 一个生成器  注意for循环 遍历后就没有值了
dic={
'alex':8000,
'wusir':3000,
'yuan':3000,
}
#
g=zip(dic.values(),dic.keys()) # values放到前边

print(max(g)[-1])

 

 




匿名函数

一句话 python 表达式

三元运算

各种推导式 生成器表达式

一句话函数 lambda
  结构  f = lambda n(变量): n**n(返回值,可以是三元运算)
print(l(10))

例子
max()

dic
={'k1':10,'k2':20,"k3":40}

print(max(dic,key=lambda k:dic[k]))

z
=zip(dic.values(),dic.keys()) # z是一个生成器
print(max(z)[-1]) # 这里的z 在用了max之后 相当于已经把z遍历完了,已经没有内容
print(list(z)) # 所以这里再去打印已经是 [] 空列表