一、format函数的使用(此函数有两种参数及两种使用方法)
1.位置参数(编号必须从0开始)
>>> '{0} love {1}'.format('I','U') #编号必须从0开始
'I love U'
2.关键字参数
>>> '{a} love {b}'.format(a='I',b='U')
'I love U'
注:位置参数可以和关键字参数搭配使用,但是位置参数必须位于关键字参数之前
>>> '{0} love {b}'.format('I',b='China')
'I love China'
例子:如何使用format显示pi=3.14,及''.format('Pi = ', 3.1415)前面的字符串应该如何填写
>>> '{0}{1:.2f}'.format('pi=',3.1415)
'pi=3.14'
注:上述练习中,冒号表示格式化符号的开始;使用格式化符号时数字自动四舍五入。
二、字符串格式化符号含义
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%o | 格式化无符号8进制 |
%x | 格式化无符号16进制(小写) |
%X | 格式化无符号16进制(大写) |
%f | 格式化定点数,可指定小数点后的精度(默认精确到小数点后6位) |
%e | 科学记数法格式化定点数(小写) |
%E | 科学计数法格式化定点数(大写) |
%g | 根据大小决定使用%f 或%e |
%G | 根据大小决定使用%f 或%E |
使用方法实例:
>>> # %c 格式化字符串及ASCII码
>>> '%c' %97 #97是c的ASCII码
'a'
>>> '%c%c %c' %(97,98,99) #python支持两种形式的输入参数,一种是元组,一种是字典,对元组来说,若有多个参数,必须用括号括起来,否则会出错
'ab c'
>>> # %s 格式化字符串
>>> '%s' % 5
'5'
>>> # %d 格式化整数
>>> '%d+%d=%d'%(3,4,3+4)
'3+4=7'
>>> # %o 格式化无符号8进制
>>> '%o' % 10
'12'
>>> # %x 格式化无符号16进制(小写)
>>> '%x' % 10
'a'
>>> # %X 格式化无符号16进制(大写)
>>> '%X' % 10
'A'
>>> # %f 格式化定点数,可指定小数点后的精度(默认精确到小数点后6位)
>>> '%f' % 123
'123.000000'
>>> '%.2f' % 123
'123.00'
>>> # %e 科学记数法格式化定点数(小写)
>>> '%e' % 123
'1.230000e+02'
>>> # %E 科学计数法格式化定点数(大写)
>>> '%E' % 123
'1.230000E+02'
>>> # %g 根据大小决定使用%f或%e
>>> '%g' % 123
'123'
>>> # %G 根据大小决定使用%f或%E
>>> '%G' % 12300000000
'1.23E+10'
注:python支持两种形式的输入参数,一种是元组,一种是字典,对元组来说,若有多个参数,必须用括号括起来,否则会出错
三、格式化操作符辅助指令
m.n | m是显示的最小总宽度,n是小数点后的位数 |
- | 用于左对齐 |
+ | 在正数前面显示正号(+) |
# | 在8进制前面显示‘0o’,在16进制前面显示‘0x’或‘0X’ |
0 | 显示的数字前填充‘0 |
使用方法实例:
>>> # m.n m是显示最小总宽度,n是小数点后的位数
>>> '%6.2f' % 3.1
' 3.10'
>>> '%.2e' %3
'3.00e+00'
>>> # -用于左对齐
>>> '%-10d' % 5
'5 '
>>> # +在整数前面显示正号
>>> '%+d' % 5
'+5'
>>> '%+d' % -4
'-4'
>>> # #在八进制前面显示‘0o’,在十六进制前面显示'0x'或'0X'
>>> '%#o' % 10 #8进制
'012'
>>> '%#x' % 10 #16进制
'0xa'
>>> '%#X' % 10 #16进制
'0XA'
>>> '%#d' % 10 #10进制
'10'
>>> #0显示的数字前填充0取代空格
>>> '%03d' % 5
'005'
>>> '%03d' % -5
'-05'
>>> '%-03d' % 5
'5 '
四、字符串转义符的含义
\' | 单引号 |
\" | 双引号 |
\a | 发出系统响铃声 |
\b | 退格符 |
\n | 换行符 |
\t | 横向制表符(tab) |
\v | 纵向制表符 |
\r | 回车符 |
\f | 换页符 |
\o | 8进制数代表的字符 |
\x | 16进制数代表的字符 |
\0 | 表示一个空格符 |
\\ | 反斜杠 |
练习:
1.>>> "{{1}}".format("China", "America")会打印什么内容?
>>> "{{1}}".format("China", "America")
'{1}'
2.编写一个进制转换程序(十进制转换二进制可以用bin()这个内置函数):
q=True
while q:
num=input('请输入一个十进制的整数(输入Q结束程序):')
if num !='Q':
num=int(num)
print('十进制->十六进制: %d -> %#x') % (num,num)
print('十进制->八进制: %d -> %#o') % (num,num)
print('十进制->二进制: %d -> ') % num,bin(num)
else:
q=False
演示结果:
请输入一个十进制的整数(输入Q结束程序):10
十进制->十六进制: 10 -> 0xa
十进制->八进制: 10 -> 012
十进制->二进制: 10 -> 0b1010
请输入一个十进制的整数(输入Q结束程序):17
十进制->十六进制: 17 -> 0x11
十进制->八进制: 17 -> 021
十进制->二进制: 17 -> 0b10001