内置函数
1 作用域相关
locals() 返回当前作用域中的名字
globals() 返回全局作用域中的名字
2 迭代器相关
range() 生成数据
next() 迭代器向下执行一次.内部实际使用了__next__()方法返回迭代器的下一个项目
iter() 获取迭代器,内部实际使用的是__iter__()方法来获取迭代器
lst=["白蛇传","还珠格格","庄子"] it=lst._iter_() print(it.__next__()) print(it.__next__()) print(it.__next__()) print(dir(str)) it =iter(lst) 内部封装的就是__iter__() print(it.__next__()) print(next(it)) 内部封装的是__next__()
3 子敷疮类型代码的执行
eval() 执行字符串类型的代码 并返回最终结果
s="5*6" ret=eval(s) 动态执行一个代码片段,侧重点在返回上 pritn(ret)
a="{'name':"汪峰",'age':'48','wife':{'name':"国际章",'age':'38'}" d =eval(a) 还原回字典 列表 print(d['name'])
exec() 执行字符串类型的代码
s="a=10" exec(s) print(a) pycharm里的报错信息,不一定是对的
content = input("请输入你的代码:") exec(content) pritn(a)
eval 和 exec的区别:
eval执行代码的时候有返回值
而exec执行代码 但是没有返回值
complie() 将字符串类型的代码编译,代码对象能够通过exec语句来执行或者eval()进行求值
s="for i in range(10): print(i) c=complie(s,"","exec") 没有返回值 使用exec的执行模式 exec(c)
结果:0
1
2
3
4
5
6
7
8
9
s="5+9" c=compile(s,","eval") compile(代码块,文件名,执行模式)
括号中有代码块和文件名选其一填,
执行模式要是有返回值用eval,没有返回值用exec模式 ret=eval(c) 有返回值 选eval print(ret)
结果:14
s="content=input("请输入你的名字:") c=complie(s,"","single") 编译 没有singel() exec(c) 执行 没有返回值 使用exec模式 print(content)
4 输入和输出相关
input() 获取用户输入的内容
print() 打印输出
5 内存相关
hash() 获取到对象的哈希值
lst=(1,2,3,4,5,6) print(id(lst)) 查看内存地址 print(hash(lst)) 目的是为了存储,计算之后是一个数字 hash值尽量的不要重复(在某种特定环境下hash可能会重复)
id() 获取到对象的内存地址
6 文件操作相关
open() 用于打开一个文件 创建一个文件句柄
7 模块相关
__import__() 用于动态加载类和函数
import os 引入模式 (引入os 模块)
8 帮助
help() 函数用于查看模块用途的详细说明
print(help(str)) 帮助文档
9 调用相关
callable() 用于检查一下对象是否可调用 如果返回true, object可能调用失败,但是如果返回false 那调用绝对不会成功
如: a=10 print(callable(a)) 判断a 是否能被调用执行 返回False a 不能被调用
def a(): pass a() a 是函数 能被调用 print(callable(a)) 返回True
10 查看内置属性
dir() 查看对象的内置属性 方法,访问的是对象中的__dir__()方法
1 print(dir(str)) 所有方法的名字
11 基础数据类型相关
数字相关:
bool() 将给定的数据转换成bool值 如果不给值 返回false
int() 将给定的数据转换成int值 如果不给值 返回0
float() 将给定的数据类型换成float值 也就是小数
complex() 创建一个复数, 第一个参数为实部,第二个参数为虚部 或者第一个参数直接用字符串来描述复数
12 进制转换
bin() 将给定的数据转换成二进制
print(bin(3)) 5的二进制 0b二进制
oct()将给的参数转换成八进制
hex()将给的参数转换成十六进制
13 数学运算
abs() 返回绝对值
print(abs(32)) 绝对值 |绝对值|
divmode() 返回商和余数
print(divmod(10,3)) 计算商和余数
round()四舍五入
print(round(4.51)) 四舍五入
pow(a,b) 求a的b次幂 如果有三个参数 则求完次幂后对第三个数取余
print(pow(2,4,3)) 求次幂 第三个参数 ,计算余数
sum()求和
print(sum([1,2,3,4,5],3) 结果:18
min() 求最小值
print(min[5,12,45,6,7,34])) 结果: 5
max()求最大值
print(max[5,12,45,6,7,34]) 结果:45
14 和数据结构相关:
列表和元组:
list() 将一个可迭代对象转换成列表
tuple() 将一个可迭代对象转换成元组
reversed()将一个序列翻转 返回翻转序列的迭代器
lst=["马化腾","哈哈哈","看看看","淡淡的"] ll =reversed(lst) 翻转 返回迭代器 print(list(ll))
slice() 将列表切片
1 lst=["马化腾","马原","马大帅","马超"] 2 s=slice(1,3,2) 3 print(lst[s]) 4 5 6 print(lst[1:3:2]) 7 8 9 结果: 10 两者得到的都是 "马云"
15 与字符串相关
str() 将数据转换成字符串
format()与具体数据相关 用于计算各种小数
1 print(format(s,"^20")) # 居中 2 # print(format(s,">20")) # 右对齐 3 # print(format(s,"<20")) # 左对齐 4 5 6 # print(format(3, 'b')) # 二进制 11 7 # print(format(97, 'c' )) # 转换成unicode字符 8 # print(format(11, 'd' )) # 十进制 9 # print(format(11, 'o' )) # ⼋进制 10 # print(format(11, 'x' )) # ⼗六进制(⼩写字⺟) 11 # print(format(11, 'X' )) # ⼗六进制(⼤写字⺟) 12 # print(format(11, 'n' )) # 和d⼀样 13 # print(format(11)) # 和d⼀样 14 15 # 浮点数 16 #print(format (123456789, 'e' )) # 科学计数法. 默认保留6位⼩数 17 # print(format (123456789, '0.2e' )) # 科学计数法. 保留2位⼩数(⼩写) 18 # print(format (123456789, '0.2E' )) # 科学计数法. 保留2位⼩数(⼤写) 19 # print(format (1.23456789, 'f' )) # ⼩数点计数法. 保留6位⼩数 20 # print(format (1.23456789, '0.2f' )) # ⼩数点计数法. 保留2位⼩数 21 # print(format (1.23456789, '0.10f')) # ⼩数点计数法. 保留10位⼩数 22 # print(format (1.23456789e+10000, 'F' )) # ⼩数点计数法. INF 无穷大 23 ,
bytes() 把字符串转化成bytes()类型\
bytearray()返回一个新字节数组,这个数字里的元素是可变的,并且每个元素的值的范围是(0,256)
memoryview() 查看bytes在内存中的情况
ord() 输入字符找字符编码的位置
print(ord('a')) 查看字母a的编码位置 97
chr() 输入位置数字找出对应的字符: 用法跟ord相反
ascii() 是ascii码中的返回该值 不是就返回\n
repr()
16 数据集合
dict{} 创建一个字典
set() 创建一个集合
frozenset() 创建一个冻结的集合 冻结的集合不能进行添加和删除操作
len() 返回一个对象中元素的对象
sorted() 对可迭代对象进行排序操作
enumerate() 获取集合的枚举对象
all() 可迭代对象中全部为true 则为true
any() 可迭代对象中有一个是true 结果就是true
zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的开了表,如果各个可迭代器的元素个数不一致,则返回列表长度与最短的对象相同
filter()
map() 会根据提供的函数对指定序列做映射