字符串中插入变量
来源:互联网 发布:vs2015可以写c语言吗 编辑:程序博客网 时间:2024/06/06 05:58
今天谈一个字符串中插入变量的话题,算是读python cookbook理解之后的总结吧
@python>>>s='{} has RMB {}'>>>s.format('kss',100)'kss has RMB 100' #以上是普通的替换,经常也可以以'%s has RMB %d'%(name,num)的形式出现,但是format性能更佳,不多说.#看一下插入变量>>>s='{name} has RMB {n}'>>>s.format('kss',100)Traceback (most recent call last): File "<stdin>", line 1, in <module>KeyError: 'name'#报错了,注意,如果字符串中是以变量名的形式插入,那么填坑的时候需要传递键值对>>>s.format(name='kss',n=100)'kss has RMB 100'#-------------害羞的分隔线---------------#以上是普通的用法,简单方便,现在来看一下深入一点的>>>name='kss'>>>n=50>>>s='{name} has RMB {n}'>>>s.format_map(vars())'kss has RMB 50'#format_map和format功能一样,获取的是dict类型的对象来给字符串填坑而不是format的keyword,vars()获取上下文环境中定义的变量,返回键值对,也就是dict#vars()还有一个特例就是还可以直接获取类对象,比如:>>>class Info: def __init__(self,name,n): self.name=name self.n=n>>>a=Info('kss','30')>>>s.format_map(vars(a))'kss has RMB 30'#---------又是一条害羞的分隔线---------------#format,format_map也有缺陷,缺陷是当提供的参数不足是就会报错,比如:>>>s='{name} has RMB {n}'>>>s.format(name='kss')Traceback (most recent call last): File "<stdin>", line 1, in <module>KeyError: 'n'#为了让系统性能提高一些,我们可以这样做避免上面的得异常>>>class safesub(dict): def __missing__(self,key): return '{'+key+'}'>>>s='{name} has RMB {n}'>>>name='kss'>>>s.format_map(safesub(vars()))'kss has RMB {n}'#看,这样子就不会报错了,而是把变量原样输出#--------------这是一条霸气的分隔线---------------------#如果字符串中插入变量,替换变量这种操作在你的程序中经常用到,你可以把这种操作固定成一种函数来简化,方便使用,比如:>>>import sys>>>def sub(text): return text.format_map(safesub(sys._getframe(1).f_locals))#然后你就可以为所欲为了>>>name='kss'>>>n=0>>>s='{name} has RMB {n}'>>>sub(s)'kss has RMB 0'>>>print(sub('hello, my name is {name}'))'hello, my name is kss'#好了,基本已经演示完了,更多的内容需要自己勤动手,实践出真知...
0 0
- 字符串中插入变量
- python 字符串插入变量
- android string.xml的字符串中插入变量
- 数据库中插入字符串
- python字符串中插入字符串
- IOS 字符串中插入字符串
- 字符串中插入其他字符串
- Ruby on Rails学习拾遗(一)—字符串中插入变量
- java 字符串中插入字符
- 在字符串中随机插入字符串
- 字符串中,插入字符串统计的个数
- C语言向字符串中插入字符串
- C++中字符串常量与字符串变量
- 关于不用任何中间变量快速插入字符串的方法
- PHP中字符串中嵌入变量
- 在 textarea 中光标位置插入字符串
- C++向字符串中插入数据
- 在一个字符串中插入指定字符
- C语言里的类型提升
- MySQL中表的操作
- android 隐藏状态栏 导航栏 虚拟按键
- 初学者买什么古筝好,初学者买古筝的心理价位
- OTSU算法学习 OTSU公式证明
- 字符串中插入变量
- iOS—崩溃分析
- maven多级项目使用 slf4j+log4j,以及自定义配置文件路径
- iOS KVO 实现原理
- SpringMVC-2 使用@RequestMapping映射请求
- 迂回方正2
- 完美数列(25)----暴力水题
- (三)ROS中控制机器人运动的实现(在gazebo中显示)
- Linux学习之10个最危险的命令详解