6.3 printf风格的字符串格式化
占位符:'%' 开始,加宽度、精度等,加转换符。
语法
使用 % 取摸运算符(也叫求余数运算符)。
格式化字符串 % 参数
格式化字符串 % (参数1,参数2, 参数3,...)
格式化字符串中的转换符
常用的转换符
转换符
含意
'd'
有符号的十进制整数。
'f'
十进制格式的浮点 数(小数)。
's'
使用 str() 转换任何 Python 对象。
'%'
不转换参数,在结果中输出一个'%' 字符。
示例
# 此示例示意 C 语言 printf 风格的字符串
# 一个占位符的情况
count = 120
new_str1 = '人数是%d' % count
print(new_str1)
# 多个占位符的情况
title = "圆周率"
pi = 3.141592653589793
new_str2 = '%s的值是%f' % (title, pi)
print(new_str2)
运行结果
人数是120
圆周率的值是3.141593
% 和 转换符 之间的旗标语法
%[- + 0 宽度.精度]类型码
说明
-
: 左对齐(默认是右对齐);+
: 显示正号;- 0 : 左侧空白位置补零;
- 宽度 : 整个数据输出的宽度;
- 精度 : 保留小数点后多少位(默认6位)。
旗标
含意
'#'
值的转换将使用“替代形式”(具体定义见下文)。
'0'
转换将为数字值填充零字符。
'-'
转换值将靠左对齐(如果同时给出
'0'
转换,则会覆盖后者)。' '
(空格) 符号位转换产生的正数(或空字符串)前将留出一个空格。
'+'
符号字符 (
'+'
或 '-'
) 将显示于转换结果的开头(会覆盖 "空格" 旗标)。示例
>>> "%10d" % 123
' 123'
>>> "%-10d" % 123
'123 '
>>> "%10s" % 'abc'
' abc'
>>> "%-5s" % 'abc'
'abc '
>>> "%05d" % 123
'00123'
>>> "%7.3f" % 3.1415926535
' 3.142'
>>> "%07.3f" % 3.1415926535
'003.142'
>>>
全部的转换符
转换符
含意
'd'
有符号十进制整数。
'i'
有符号十进制整数。
'o'
有符号八进制数。
'u'
过时类型 -- 等价于
'd'
。'x'
有符号十六进制数(小写)。
'X'
有符号十六进制数(大写)。
'e'
浮点指数格式(小写)。
'E'
浮点指数格式(大写)。
'f'
浮点十进制格式。
'F'
浮点十进制格式。
'g'
浮点格式。 如果指数小于 -4 或不小于精度则使用小写指数格式,否则使用十进制格式。
'G'
浮点格式。 如果指数小于 -4 或不小于精度则使用大写指数格式,否则使用十进制格式。
'c'
单个字符(接受整数或单个字符的字符串)。
'r'
字符串(使用
repr()
转换任何 Python 对象)。's'
字符串(使用
str()
转换任何 Python 对象)。'a'
字符串(使用
ascii()
转换任何 Python 对象)。'%'
不转换参数,在结果中输出一个
'%'
字符。练习
写一个程序
- 输入您的用户名;
- 输入您的住址;
用 C 语言 printf 风格的字符串格式化 打印如下格式的内容。
请输入您的姓名:老魏
请输入您的住址:北京市朝阳区
老魏住在北京市朝阳区。