目录
高级字符串内置函数
eval()函数
用于执行一个字符串表达式,且返回表达式的值(计算结果)。
语法格式:
eval(expression[,globals[,locals]])
# expression表示字符串类型表达式;
# globals为可选参数,表示变量作用域,全局命名空间,若指定了globals参数,则参数必须是一个字典对象;
# locals为可选参数,表示变量作用域,局部命名空间,若指定了locals参数,则参数可以是任何映射对象。
print(eval('0+1+2+3+4+5'))
n = 6
print(eval("n + 100")) # 加法
print(eval("n * 100")) # 乘法
print(eval("pow(n,2)")) # 幂
n = input("输入一个算数公式:")
print(eval(n))
运行结果:
a = 0
list = [] # 定义空序列对象
while a < 10: # 循环计算每一个数的3次方结果
list.append(eval("pow(a,3)"))
a += 1
print(list)
运行结果:
a = "[1,2,3,5,10]" # 字符串
b = "(1,3,5,7)" # 字符串
c = "20" # 字符串
print(a,"转换前类型为:",type(a))
print(a,"转换后类型为:",type(eval(a))) # 列表
print(b,"转换前类型为:",type(b))
print(b,"转换后类型为:",type(eval(b))) # 元组
print(c,"转换前类型为:",type(c))
print(c,"转换前类型为:",type(eval(c))) # 整数
运行结果:
exec()函数
用于执行存储在字符串或者文件中的python语句。可以执行更复杂的python代码。
语法格式:
exec(object[,globals[,locals]]
# object为必选参数,表示需要被指定的Python代码,必须是字符串或code对象。若为字符串则该字符串会先被解析为一组Python语句再执行(除非发生语法错误);若是code对象则被简单的执行。
# globals为可选参数,表示全局命名空间(存放全局变量),若指定该参数则对象必须为一个字典对象。
# locals为可选参数,表示当前局部命名空间(存放局部变量),若指定该参数则可以是任何映射对象;若忽略该参数则将取与globals相同值。
code = """
import random # 导入随机数模块
a = 0
list = []
while a < 10:
list.append(random.randint(0,10)) # 将随机数添加至列表中
a += 1
print(list)
"""
exec(code)
运行结果:
ascii()函数
用于返回对象的可打印字符串表现方式。
语法格式:
ascii(object)
# object表示对象。
# 返回值为一个表示对象的字符串。若为非ASCII字符,就会输出\x、\u或\U等字符。
print(ascii(20))
print(ascii('@'))
print(ascii("我爱学习")) # 非ASCII字符
print(ascii("python"))
print(ascii("a\30"))
运行结果:
compile()函数
用于将一个字符串编译为字节代码。
语法格式:
compile(source,filename,mode[,flags[,dont_inherit]])
# source表示字符串或者AST(Abstract Syntax Trees)对象。
# filename表示代码文件名称,若不是从文件读取代码则传递一些可辨认的值。
# mode指定编译代码的种类。可以指定为exec、eval、single。
# flags表示变量作用域,局部命名空间,若指定该参数则可以是任何映射对象。
# dont_inherit用来控制编译源码时的标志。
# 返回值为表达式执行的结果。
code = """
for a in range(0,15):
if a % 5 == 0:
print(a,end = '、')"""
byteExec = compile(code,' ','exec')
exec(byteExec)
运行结果:
未完待续。。。。。
后续讲字符串如何转换字母大小写以及删除空格、特殊字符。