其他分享
首页 > 其他分享> > 【string】字符串模板、拼接、格式

【string】字符串模板、拼接、格式

作者:互联网

在python中Template可以将字符串的格式固定下来,重复利用。 1、使用 string.Template 拼接时,要在名字前加前缀$来标识变量(例如, $var) 如果有必要区分变量和周围的文本,可以用大括号包围变量(例如,${va r})
import string

values = {'var': 'foo'}
t = string.Template("""
Variable        : $var 
Escape          : $$ 
Variable in text: ${var}iable
""")
print('TEMPLATE: ', t.substitute(values))

输出结果:

TEMPLATE:  
Variable        : foo 
Escape          : $ 
Variable in text: fooiable

2、使用%操作符的类似字符串拼接

s1 = """
Variable        : %(var)s
Escape          : %% 
Variable in text: %(var)siable
"""
print('TERPOLATION', s1 % values)

输出结果:

TERPOLATION 
Variable        : foo
Escape          : % 
Variable in text: fooiable

3、使用 str. format ()格式

s2 = """
Variable        : {var} 
Escape          : {{}} 
Variable in text: {var}iable
"""
print('FORMAT: ', s2.format(**values))

输出结果:

FORMAT:  
Variable        : foo 
Escape          : {} 
Variable in text: fooiable
模板与字符串拼接或格式化的一个关键区别是,它不考虑参数的类型 值会转换为字符串,再将字符串插入结果 这里没有提供格式化选项 例如,没有办法控制使用几位有效数字来表示一个浮点值 不过,这也有一个好处,通过使用 safe substitute() 方法,可以避免未能向模板提供所需的所有参数值时可能产生的异常  
values = {'var': 'foo'}
t = string.Template("$var is here but $missing is not provided")

try:
    print('substitute() :', t.substitute(values))
except KeyError as e:
    print('ERROR:', str(e))

print('safe_substitute(): ', t.safe_substitute(values))

输出结果:

ERROR: 'missing'
safe_substitute():  foo is here but $missing is not provided
由于 values 字典中没有 missing 的值,所以 substitute() 会产生一个 KeyError  safe_substitute() 则不同,它不会抛出这个错误,而是会捕获这个错误并保留文本中的变量表达式 换种说法就是使用substitute(values)的话,那t中的两个变量都要在values中存在 用safe_substitute()时,当t中的两个变量有两个,但是values中只有一个变量的值的话,那另一个变量它会默认为字符串显示                                

标签:string,text,safe,var,拼接,values,模板,Variable,substitute
来源: https://www.cnblogs.com/fjy49/p/14425831.html