python字符串格式化输出

2017-07-10  本文已影响0人  MoraGG

在python2中一直使用形如: “%s ....  %d” % (str, ... , intNum)格式化字符串的。这是python从C系列借鉴过来的语法,但是这种语法对于C这种静态语言足够快足够好,但是对于拥有很多先进数据结构的python来说就有点心有余来力不足了。为什么这么说呢?python的几把利刃:元组,列表,字典,集合等不适合用这种结构表示,这些利刃大多元素用下标表示,在这种结构中写出来很丑陋,不信你试试。

不管怎么样,这种表示方法还是必须掌握的,大多数情况下表示起来还是特别快速的。

字符串格式化代码:

格式描述

%% 百分号标记

%c 字符及其ASCII码

%s 字符串

%d 有符号整数(十进制)

%u 无符号整数(十进制)

%o 无符号整数(八进制)

%x 无符号整数(十六进制)

%X 无符号整数(十六进制大写字符)

%e 浮点数字(科学计数法)

%E 浮点数字(科学计数法,用E代替e)

%f 浮点数字(用小数点符号)

%g 浮点数字(根据值的大小采用%e或%f)

%G 浮点数字(类似于%g)

%p 指针(用十六进制打印值的内存地址)

%n 存储输出字符的数量放进参数列表的下一个变量中

看着这么的多格式,其实常用的也就那么几个,总结一些只需要记住: %d, %s, %f就OK了,其实等需要用的时候查找就可以了,毕竟我们大脑的资源是很宝贵的,可不能全用来记这些死板的东西

再来看看《Python基础编程》中对格式化输出的总结:

(1) %字符:标记转换说明符的开始

(2) 转换标志:-表示左对齐;+表示在转换值之前要加上正负号;“”(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用0填充

(3) 最小字段宽度:转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出。

(4) 点(.)后跟精度值:如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将从元组中读出。

下面来看看python3主打的格式化函数format().

字符串的format函数可以通过以下几个方式灵活的完成字符串格式化:

1. 通过位置标号

{0}表示第一个元素, {1}表示第二个元素, {2}表示第三个元素,以此类推。。。

注意在这里的顺序是按照format中的参数顺序而言的,在字符串中{0},{1}位置随便。

2.通过关键字参数

3.通过属性和下标

但是不知道字典怎么回事,和正常的键值索引不一样,貌似字符串不需要加引号,加引号反而出错了。。。

各位可以自己试一下。当键值为整数的时候可以顺利输出,键值为字符串时不需要加‘’。

4.格式化限定符

{0:0.2f} {1:3d},在序号后面加上格式符就可以了,不用加%哦。

5.填充与对齐(更加方便的语法,虽然用到的比较少)

填充常跟对齐一起使用

^、<、>分别是居中、左对齐、右对齐,后面带宽度

:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

是不是很方便,注意<>^号后面加宽度哦。

好啦,print和格式化的用法基本讲完了。大家掌握的怎么样啦

上一篇下一篇

猜你喜欢

热点阅读