内置函数:68个
作用域相关
locals() 局部作用域
globals() 全局作用域
在全局执行者两个方法,结果相同
如果在局部执行,函数内部,locals表示函数内的名字,globals始终不变
迭代器/生成器相关
iter() 迭代对象变迭代器
next() 启动迭代器,返回值
range() 范围,步长 取得是可迭代对象,最好循环取结果
其他
字符串类型代码的执行:
eval() 将字符串的两个号去掉执行,神奇用法,可以用来将字符串变成条件 有返回值 exec() 同上,不过没有返回值 compile 有三个参数:source 动态执行代码段 filename 代码文件名称 model,指定编译代码的种类 code1 = 'for i in range(0,10):print(i)' compile1=compile('code1','',exec) exec(compile1)
当需要对某一个字符串数据类型的python代码多次执行的时候,再用
直接拿来执行的方式一定不要随便用
如果非用不可,你也要做最起码的检测
输入和输出
input() 输入字符串 print() 输出 end''这样可以不带换行符 sep‘’中间可以添加分隔符 file=f 可以打印到文件中 sys.stdout.flush() 这样的话print就不会等看还有没有循环要打印的,而是直接打出来,要不会等所有一起打到屏幕 .flush()立刻怎么怎么样
进度条实例
import time import sys for i in range(0,101,2): time.sleep(0.1) char_num = i//2 #打印多少个# per_str = '\r%s%% : %s\n' % (i, '*' * char_num) if i == 100 else '\r%s%% : %s'%(i,'*'*char_num) print(per_str,end='', file=sys.stdout, flush=True)
\r将光标移动到行首但不换行
内存相关
hash()可以字符串可以数字,其他可变数据类型都不能被hash hash结果是一个数字,一个代码内执行起来同一个可hash对象永远是一样的
但是再执行一次就不一样了 hash是一种摘要算法 可以做字典的key 数据库字典应用
在python的一次执行中,对于相同的可hash对象来说,得到的是相同的数字
id() 身份运算 is is not 不仅比较值的大小还比较内存地址是否一致
加空格的话地址会不相同
文件操作
open()
模块相关
import 后面模块
帮助
help:
进入help模式 help() 输入q是退出 括号里面可以制定查询的对象的帮助信息
调用相关
callable 判断一个对象是否可以调用
查看内置属性
dir 用法 print(dir())括号内使用来查找内置属性的对象
print(dir(__builtins__)) 所有内置函数
基本数据类型相关
filter和map:
filter() 过滤,括号内先函数后可迭代对象 过滤条件在函数里面 后面是过滤对象,前面是过滤条件函数
def func(n): if n%2==0: return True #返回的是条件结果 lst = [1,2,3,4,5,6,7,8] ret = filter(func,lst) print(ret) #ret应该是一个可迭代对象 for i in ret: print(i)
map() 同filter前面是函数后面是可迭代对象,
例子:
lst=[1,2,3,4,5,6,7] def func(item): return item*item #这个返回的结果是func的值 print(list(map(func,lst)))
例
se = {'a','b','c'} for i in enumerate(se,1) #给可迭代对象加序号,后面从什么起始 print(i[0],i[1],se[i[1]])