字符串格式化符号%,它标记了需要插入转换值的位置。
字符串格式化右侧可以是列表,字符串,元组和字典,其中元组和字典中的每一个元素/项都会被单独格式化(都需要对应一个转换说明符),而其他类型的序列会被解释为一个值。
str1='www.%s.com'str2='www.%s.%s.com'str3='www.%(first)s.%(second)s.com'print '字符串格式化字符串:'+ str1 % 'baidu.com'print ' 元组格式化字符串:'+ str2 %('new','baidu')print ' 列表格式化字符串:'+ str1 % ['new','baidu']print ' 字典格式化字符串:'+ str3%{'first':'new','second':'baidu'}# -*- coding: UTF-8 -*-
上面四个输出如下,注意列表时的输出。如果用元组或字典格式化str1或者用字符串格式化str2都会报错。
基本的转换说明符包含以下部分:字符串格式化字符串:www.baidu.com.com 元组格式化字符串:www.new.baidu.com 列表格式化字符串:www.['new', 'baidu'].com 字典格式化字符串:www.new.baidu.com
1.%字符:标记转换说明符的开始
2.转换标志(可选):-左对齐,+显示正负号,“”(空白符)整数之前保留空格,0转换值若数位不够用0填充
3.最小字段宽度(可选):指定字符串最小显示宽度,如果是*,宽度从元组中获取
4.点(.)后跟精度值(可选):如果转换的是实数,精度值就是小说点后的位数;如果转换的是字符串,精度值表示的是最大宽度;如果是*,精度值从元组中获取
5.转换类型:常用:s 字符串,x 16进制,f 浮点数,e 科学计数法,d 带符号十进制整数,u 无符号十进制
上面代码依次打印如下from math import pi p2 = -3.1415 str='abcd' print '%10f' % pi print '%10.2f' % pi print '%010.2f' % pi print '%-10.2f' % pi print '%+10.2f' % pi print '%+10.2f' % p2 print '%10.2d' % pi #此处只是想保留整数部分,处理的时候有个坑 print '%010d' % pi print '%-10.2s' % str
3.141593 3.14 0000003.14 3.14 +3.14 -3.14 03 0000000003 ab