自学Python之——替换字符串子串

代码构成:

!/usr/bin/python
# -*- coding:utf-8 -*-
#time:2015/3/18
#function:替换字符串的子串
import string
msg = string.Template('this is $thing')
print msg.substitute(thing='test')
print msg.substitute(thing=1)  #小括号内直接传递关键字参数,好记好用。
print msg.substitute({'thing':'test1'}) #字典参数,并调用
#当含有多个关键字需要替换时:
text = '''Dear $name,
if you don't find room $room ,Please tall us.'''
new_msg = string.Template(text)
print new_msg.substitute({'room':201,'name':'Tom'})   #用字典参数
print new_msg.substitute(room=301,name='David')    #直接传值
#将变量交给locals(),此函数将创建一个字典,key就是本地变量,本地变量的值可以通过key来访问:
local = string.Template('$name1 and $name2 are good friends')
name1 = 'Lily'
name2 = 'Nancy'
print local.substitute(locals())
print local.substitute(locals(),name2='Tom')   #当出现参数传递发生冲突,关键字参数优先

</pre><pre>

执行结果:


知识点:

讲的是string.Template模板功能与substitute的结合使用。

分别用直接传递关键字参数和使用字典两种方式。这两种方式在使用时的格式略有区别,个人喜欢直接传递关键字参数。

讲解locals(),适用于已给出关键字参数的情况,它将本地的变量全部作为字典的key,函数需要调用哪些变量,locals()都可以去给出相应的值,当出现冲突时,以关键字参数优先。

心得:

水滴石穿!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值