齐柳儿
为了梦想而奋斗

1. 内置函数

作用域相关: 

locals() 返回当前作用域中的名字

globals() 返回全局作用域中的名字

迭代器相关:

range() 生成数据
next() 迭代器向下执行一次, 内部实际使用了__next__()方法返回迭代器的下一个项目
iter() 获取迭代器, 内部实际使用的是__iter__()方法来获取迭代器

字符串类型代码的执行:

eval() 执行字符串类型的代码. 并返回最终结果

print(eval("2+2")) # 4
n = 8
print(eval("2+n")) # 10
def func():
 print(666)
eval("func()") # 666

exec() 执行字符串类型的代码

exec("""
for i in range(10):
 print(i)
""")
exec("""
def func():
 print("我是周杰伦")
func()
""")

compile() 将字符串类型的代码变异. 代码对象能够通过exec语句来执行或者eval()进行求值

'''
 参数说明:
 1. resource 要执行的代码, 动态代码片段
 2. 文件名, 代码存放的文件名, 当传入了第一个参数的时候, 这个参数给空就可以了
 3. 模式, 取值有3个,
 1. exec: 一般放一些流程语句的时候
 2. eval: resource只存放一个求值表达式.
 3. single: resource存放的代码有交互的时候. mode应为single
'''
code1 = "for i in range(10): print(i)"
c1 = compile(code1, "", mode="exec")
exec(c1)
code2 = "1+2+3"
c2 = compile(code2, "", mode="eval")
a = eval(c2)

print(a)
code3 = "name = input('请输入你的名字:')"
c3 = compile(code3, "", mode="single")
exec(c3)
print(name)

 有返回值的字符串形式的代码用eval(). 没有返回值的字符串形式的代码用exec(). 一般很少用到compile()

 

输入和输出相关:

input() 获取用户输入的内容
print() 打印输出

内存相关:

hash() 获取到对象的哈希值(int, str, bool, tuple)
id() 获取到对象的内存地址

文件操作相关:

open() 用于打开一个文件, 创建一个文件句柄

 

posted on 2018-08-15 20:55  齐柳儿  阅读(152)  评论(0编辑  收藏  举报