一、测试题
0. 根据说明填写相应的字符串格式化符号
符号 | 说明 |
格式化字符及ASCII码 | |
格式化字符串 | |
格式化整数 | |
格式化无符号八进制数 | |
格式化无符号十六进制数 | |
格式化无符号十六进制数(大写) | |
格式化定点数,可制定小数点后的精度 | |
用科学计数法格式化定点数 | |
作用同%e,用科学计数法格式化定点数 | |
根据值的大小决定使用%f或者%e | |
作用同%g,根据值的大小决定使用%F或者%E |
1. 请问以下这行代码会打印什么内容?
>>>"{{1}}".format("不打印", "打印")
2.以下代码中,a, b, c是什么参数?
>>> "{a} love {b}.{c}".format(a="I", b="FishC", c="com")
'I love FishC.com'
3. 以下代码中,{0}, {1}, {2}是什么参数?
>>> "{0} love {1}.{2}".format("I", "FishC", "com")
'I love FishC.com'
4. 如果想要显示Pi = 3.14,format前边的字符串应该怎么填写呢?
' '.format('Pi = ', 3.1415)
二、动动手
0.编写一个进制转换程序,程序演示如下(提示,十进制转换二进制可以用bin()这个BIF):
(图片转载https://blog.csdn.net/junwei0206/article/details/44757871)
1. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
三、我的答案
0. 使用格式化符号的原理是将%右边的对象用%左边的格式表示出来。小甲鱼:格式化符号的使用有点像print
符号 | 说明 | 示例 |
%c | 格式化字符及ASCII码 | >>> '%c' % 107 'k' >>> '%c %c %c' % (98, 99, 100) 'b c d' |
%s | 格式化字符串 | >>> '%s' % 'I love fishc' 'I love fishc' |
%d | 格式化整数 | >>> '%d + %d = %d' % (4, 5, 4+5) '4 + 5 = 9' |
%o | 格式化无符号八进制数 | >>> '%o' % 10 '12' |
%x | 格式化无符号十六进制数 | >>> '%x' % 10 'a' |
%X | 格式化无符号十六进制数(大写) | >>> '%X' % 10 'A' |
%f | 格式化定点数,可制定小数点后的精度 | >>> '%f' % 27.658 >>> '%.2f' % 27.658 |
%e | 用科学计数法格式化定点数 | >>> '%e' % 27.658 '2.765800e+01' |
%E | 作用同%e,用科学计数法格式化定点数 | >>> '%.3E' % 27.658 '2.766E+01' |
%g | 根据值的大小决定使用%f或者%e | >>> '%g' %27.658 '27.658' |
%G | 作用同%g,根据值的大小决定使用%F或者%E | >>> '%G' % 27.658 '27.658' |
1.
>>> "{{1}}".format("不打印", "打印")
'{1}' #因为位置参数被注释掉了,元组中两个文字都不会打印
>>> "{1}".format("不打印", "打印")
'打印' #位置参数为1,在元组中“打印”的位置刚好是1,故会打印出“打印”
2. a, b, c 是关键字参数
3. 0, 1, 2是位置参数
4.
>>>"{0}{1}".format('Pi = ', 3.1415)
'Pi = 3.1415'
二、
0. 程序如下:
while 1:
print('请输入一个整数(输入Q结束程序):', end = ' ')
temp = input()
if (temp.isspace()) or (len(temp) == 0):
print('输入不能为空!')
continue
if temp.isdigit() != True:
print('非法输入!')
continue
if temp == 'Q':
break
deci = int(temp)
hexa = '%#x' % deci
octo = '%#o' % deci
bina = bin(deci)
print('十进制 -> 十六进制'+' : ',deci,' -> '+hexa)
print('十进制 -> 八进制'+' : ',deci,' -> '+octo)
print('十进制 -> 二进制'+' : ',deci,' -> '+bina)
1. 课堂重点:
- fomat接受位置参数和关键字参数,二者均传入到replacement字段中(用花括号表示)。比如:“{0} love {1}.{2}”.format(''I'', "FishC", "com") 0,1,2是位置参数; 又如:“{a} love {b}.{c}”.format(a=''I'', b="FishC", c="com")
关键字参数:a,b,c - 混合参数:位置参数必须在关键字参数之前!
“{0} love {b}.{c}”.format(''I'', b="FishC", c="com") - 打印花括号:"{{0}}".format("不打印")
花括号嵌套花括号,会打出{0},且"不打印"不会出现。 - 格式化操作符辅助命令 常和 字符串格式化符号 配合使用。在此举几个例子:
>>> '%7.2f' % 27.658 #m.n (m是控制输出的最小长度,.n是控制保留的小数位数)
' 27.66'
>>> '%10d' % 5 #10控制字符长度
' 5'
>>> '%-10d' % 5 #-号左对齐,长度10
'5 '
>>> '%+10d' % 5 #+号右对齐,并在正数前加上符号+,长度10
' +5'
>>> '%+10d' % -5 #+号右对齐,负数前不加+号,长度10
' -5'
>>> '%#o' % 10 # 井号使八进制、十六进制数前面加上标识符
'0o12'
>>> '%#X' % 10
'0XA'
>>> '%#d' % 10 # 井号对本来就是10进制的数没有作用
'10'
>>> '%010d' % 5 # 0表示空格的地方用0代替
'0000000005'
>>> '%-010d' % 5 # 0前加-号,表示左对齐,0被抑制,因为数值要与之前的一致
'5 '