Python 字符串格式化输出

1,746次阅读

共计 1465 个字符,预计需要花费 4 分钟才能阅读完成。

Python 字符串格式化使用 " 字符 % 格式 1 % 格式 2 字符 " % (变量 1, 变量 2),% 格式表示接受变量的类型。简单的使用例子如下:

# 例:字符串格式化
Name = ‘Chaishiwei’
print ‘www.%s.com’ % Name
>> www.Chaishiwei.com # 输出结果

Name = ‘Chaishiwei’
Zone = ‘com’
print ‘www.%s.%s’ % (Name, Zone)
>> www.Chaishiwei.com # 输出结果

在 Python 中格式化输出字符串使用的是 % 运算符,通用的形式为

格式标记字符串 % 要输出的值组

其中,左边部分的”格式标记字符串“可以完全和 c 中的一致。右边的 ’ 值组 ’ 如果有两个及以上的值则需要用小括号括起来,中间用短号隔开。重点来看左边的部分。左边部分的最简单形式为:

%cdoe

其中的 code 有多种,不过由于在 python 中,所有东西都可以转换成 string 类型,因此,如果没有什么特殊需求完全可以全部使用’%s‘来标记。比如:

‘%s %s %s’ % (1, 2.3, [‘one’, ‘two’, ‘three’])

它的输出为 ’1 2.3 [‘one’, ‘two’, ‘three’]’,就是按照 % 左边的标记输出的。虽然第一个和第二值不是 string 类型,一样没有问题。在这个过程中,当电脑发现第一个值不是 %s 时,会先调用整型数的函数,把第一个值也就是 1 转成 string 类型,然后再调用 str() 函数来输出。前面说过还有一个 repr() 函数,如果要用这个函数,可以用 %r 来标记。除了 %s 外,还有很多类似的 code:

整型数:%d
无符号整型数:%u
八进制:%o
十六进制:%x   %X
浮点数:%f
科学记数法: %e   %E
根据数值的不同自动选择 %e 或 %f: %g
根据数值的不同自动选择 %E 或 %f: %G

这里用 % 作为格式标记的标识,也有一个 % 本身应该如何输出的问题。如果要在”格式标记字符串“中输出 % 本身,可以用 %% 来表示。

格式符号为数字时前面可以加为数和补缺位如:%[0][总位数][.][小数位数] 来设定要转换的样式,具体使用方法如下:

# 例:数字格式化
nYear = 2013
nMonth = 3
nDay = 24
# 格式化日期 %02d 数字转成两位整型缺位填 0
print ‘%04d-%02d-%02d’ % (nYear, nMonth, nDay)
>> 2018-08-18 # 输出结果

fValue = 8.123
print “%06.2f %” fValue # 保留宽度为 6 的 2 位小数浮点型
>> 008.12

print “%d” % 10 # 输出十进制
>> 10

print “%o” % 10 # 输出八进制
>> 12

print “%02x” % 10 # 输出两位十六进制,字母小写空缺补零
>> 0a

print “%04X” % 10 # 输出四位十六进制,字母大写空缺补零
>> 000A

print “%.2e” % 1.2888 # 以科学计数法输出浮点型保留 2 位小数
>> 1.29e+00

Table 3.1. 字符串格式化代码

格式    描述
%%  # 百分号标记
%c  # 字符及其 ASCII 码
%s  # 字符串
%d  # 有符号整数 (十进制)
%u  # 无符号整数 (十进制)
%o  # 无符号整数 (八进制)
%x  # 无符号整数 (十六进制)
%X  # 无符号整数 (十六进制大写字符)
%e  # 浮点数字 (科学计数法)
%E  # 浮点数字 (科学计数法,用 E 代替 e)
%f  # 浮点数字 (用小数点符号)
%g  # 浮点数字 (根据值的大小采用 %e 或 %f)
%G  # 浮点数字 (类似于 %g)
%p  # 指针 (用十六进制打印值的内存地址)
%n  # 存储输出字符的数量放进参数列表的下一个变量中

全文完
 
西西
📝创作说明:本文由 西西 于2013-03-24发表,共计1465字。
🉑转载说明:本作品采用 “知识共享署名-非商业性使用 4.0 国际许可协议” 进行许可。除特殊说明外,您可以自由的转载和修改,但请务必注明来源且不可用于商业目的。