当前位置: 首页 > news >正文

6. python 字符串格式化表达式

6. python 字符串格式化表达式

字符串格式化允许在一个单个的步骤中对一个字符串执行多个特定类型的替换

特别是给用户提示的时候,格式化非常方便

实现方法:

1.格式化表达式,类似于c语言的printf

在表达式中,我们使用%二进制操作符

  >>> print('this is %d %s bird' % (1,'dead')) 
 
this is 
1
dead bird 

举上面的例子说明(注意我们下面所说的%,都是以字符串和元组中间的那个为准)

%的左边放置一个字符串,字符串里面放置了一个或者多个使用%开头的嵌入对象

%的右边放入一个(或多个,嵌入元组当中)对象,这些对象将插入到左边的转换目标位置上

  >>> name='ray' 
 
>>> 'my name is %s'
% name 
 
'my name is ray'
 
 
>>> '%d %s %d you' % (1,'spam',4

 
'1 spam 4 you'
 
 
>>> '%s---%s---%s' % (42,3.14,[1,2,3
]) 
 
'42---3.14---[1, 2, 3]'
 
 
>>>  

当插入多个对象时,需要把他们放到一个元组里面

2.高级格式化表达式

字符串格式化代码列表

代码

意义

s

字符串(或者任何对象)

r

s,但是用repr,而不是str

c

字符

d

十进制整数

i

整数

u

无号整数

o

八进制整数

x

十六进制整数

X

x,但打印大写

e

浮点指数

E

e,但打印大写

f

浮点十进制

F

浮点十进制

g

浮点ef

G

浮点ef

%

常量%

%[(name)][flags][width][.pression]typecode

例子


 
>>> x=1234 
 
>>> res='integers:...%d...%-6d...%06d'
% (x,x,x) 
 
>>>
res 
 
'integers:...1234...1234  ...001234'
 
 
>>>  

%e,%f,%g对于浮点数的打印是有所区别的

  >>> x=1.23456789 
 
>>>

 
1.23456789
 
 
>>> '%e|%f|%g'
% (x,x,x) 
 
'1.234568e+00|1.234568|1.23457'
 
 
>>>  

3.基于字典的格式化表达式

  >>> 'my name is %(name)s,my age is %(age)d' % {'name':'ray','age':30
 
'my name is ray,my age is 30'
 
 
>>>  

说白了就是给每个替换位置命名,这样代码看起来更加明了

转载于:https://www.cnblogs.com/quanweiru/p/8358849.html

相关文章:

  • tomcat 取消项目名访问路径
  • 【Python】学习笔记5-模块pymysql操作mysql数据库
  • mysql innodb myisam 比较
  • Git 安装配置
  • typeof面试题解答
  • 辩证看待 iostat
  • RpcContext
  • mysql学习笔记(1)--varChar和char类型的区别
  • etcd raft library
  • jQuery数组去重复
  • Nginx 配置文件重写
  • python------并发编程
  • freebsd安装python2
  • js为什么是单线程的?10分钟了解js引擎的执行机制
  • 鸟哥的linux私房菜学习-(十)vim程序编辑器
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Akka系列(七):Actor持久化之Akka persistence
  • gf框架之分页模块(五) - 自定义分页
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • javascript面向对象之创建对象
  • JSDuck 与 AngularJS 融合技巧
  • Kibana配置logstash,报表一体化
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Material Design
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Python爬虫--- 1.3 BS4库的解析器
  • ReactNative开发常用的三方模块
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 扑朔迷离的属性和特性【彻底弄清】
  • 深入 Nginx 之配置篇
  • 详解移动APP与web APP的区别
  • 小而合理的前端理论:rscss和rsjs
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #includecmath
  • #图像处理
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (rabbitmq的高级特性)消息可靠性
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (四)c52学习之旅-流水LED灯
  • (一)为什么要选择C++
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (译)2019年前端性能优化清单 — 下篇
  • *上位机的定义
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat批处理(一):@echo off
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET BackgroundWorker
  • .net core 控制台应用程序读取配置文件app.config
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .net开发时的诡异问题,button的onclick事件无效
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .Net下的签名与混淆
  • .vue文件怎么使用_我在项目中是这样配置Vue的