今日学习内容为高级字符串内置函数。
1.eval()函数
——执行一个字符串表达式并返回执行结果
语法格式:
eval(expression[,globals[,locals]])
expression:字符串表达式
globals:可选参数,变量作用域,全局命名空间,如果指定参数,必须是一个字典对象。
locals:可选参数,变量作用域,局部命名空间,如果指定参数,可以是任何影射对象。
eval() 函数示例1返回表达式运算结果:
在提示框中输入“3+7”,回车键,结果如下:
eval() 函数示例2定义空的序列对象,然后通过循环分别计算每一个数的3次方的值。
eval()函数示例3实现数据类型之间的转换:
2.exec()函数
——执行存储在字符串或文件中的Python语句
语法格式:
exec(object[,globals[,locals]])
object:必选参数,表示需要被指定的Python代码,必须是字符串或code对象。
globals:可选参数,存储全局变量,如果指定该参数,则必须是一个字典对象。
locals:可选参数,存放局部变量,如果指定该参数,可以是任何映射对象。
3.ascii()函数
——返回对象的的可打印字符串的表现方式
如果是非ASCII字符,就会输出\x、\u或\U等字符,例如:
4.compile()函数
——将字符串编译为字节代码
语法格式:
compile(source,filename,mode[,flags[,dont_inherit]]
source:字符串或AST(Abstract Syntax Trees)对象
filename:代码文件名称,如果不是从文件读取代码,则传递一些可辨认的值。
mode:指定编译代码的种类。可以指定exec、eval、single
flags:变量作用域,局部命名空间,如果指定该参数,可以是任何映射对象。
flags和dont_inherit:用来控制编译源码时的标志
返回值:返回表达式执行结果
code = """ for i in range(0,20):
if i%2==0:
print(i,end='\')"""
byteExec = compile(code,' ','exec')
exec(byteExec)
#通过compile()函数实现编译,再使用exec()函数执行这段代码,运行结果为
0\2\4\6\8\10\12\14\16\18\