字符串的格式化问题

format使用,将字符串统一行使输出

>>> "{0} love {1},{2}".format("i",'python', 'network')
'i love python,network'
>>> "{0} love {1},{2}".format("i",'python', 'network')
'i love python,network'
>>> "{a} love {b},{c}".format("i",'python', 'network')
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    "{a} love {b},{c}".format("i",'python', 'network')
KeyError: 'a'
>>> "{a} love {b},{c}".format(a="i",b='python', 'network')
SyntaxError: positional argument follows keyword argument
>>> "{a} love {b},{c}".format(a="i",b='python', c='network')
'i love python,network'
>>> "{0} love {b},{c}".format("i",b='python', c='network')
'i love python,network'

注意:当不知道未知参数是谁的时候,必须指定关键参数,当然也可以未知参数与指定参数一起使用,只是这个时候未知参数必须放在指定参数之前,否则会报错

>>> "{a} love {0},{c}".format(a="i",'python', c='network')
SyntaxError: positional argument follows keyword argument

注意:是没有输出信息的,因为{0}已经被解释掉了,就像打印两个反斜杠,只会出来一个,另外一个被解释。

"{{0}}".format("CCIE")
'{0}'
 "{{0}}".format("不打印")
'{0}' 

观察以下输出:

>>> '{0:.1f}{1}'.format(27.658,'GB')
'27.7GB'

在替换域中,冒号表示格式化符号的开始 ,.1表示四舍五入保留一位小数,f表示定点数。

字符串格式化符号含义
在这里插入图片描述举例:

>>> "%c" % 85
'U'
>>> "%c %c %c" % (97,98,99)
'a b c'
>>> '%s' % 'i love python'
'i love python'
>>> "%d + %d" = '%d' % (4, 5, 4+5)
SyntaxError: can't assign to literal
>>> "%d + %d = '%d" % (4, 5, 4+5)
"4 + 5 = '9"
>>> "%o" % 10
'12'
>>> "%x" % 10
'a'
>>> "%X" % 10
'A'
>>> "%f" % 27.658
'27.658000'
>>> "%e" % 27.658
'2.765800e+01'
>>> "%E" % 27.658
'2.765800E+01'
>>> "%g" % 27.658
'27.658'
>>> "%G" % 27.658
'27.658'

格式化操作符辅助命令
在这里插入图片描述

>>> "%5.0f" % 27.658
'   28'
>>> "%5.1f" % 27.658
' 27.7'
>>> "%5.3f" % 27.658
'27.658'
>>> "%5.8f" % 27.658
'27.65800000'
>>> "%10d" % 2
'         2'
>>> "%-10d" % 2
'2         '
>>> "%+10d" % 2
'        +2'
>>> "%#o" % 9
'0o11'
>>> "%#o" % 18
'0o22'
>>> "%#x" % 18
'0x12'
>>> "%010d" % 18
'0000000018'

在这里插入图片描述
课后题

  1. 请问以下这行代码会打印什么内容?
>>> "{{1}}".format("不打印", "打印")
'{1}'
  1. 以下代码中,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前边的字符串应该怎么填写呢?
解:

>>> '{0}{1:.2f}'.format('Pi = ', 3.1415)
'Pi = 3.14'

动手题
编写一个进制转换程序

q = True
while q:
    num = input('请输入一个整数(输入Q结束程序):')
    if num != 'Q':
        num = int(num)
        print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
        print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
        print('十进制 -> 二进制 : %d -> ' % num, bin(num))
    else:
        q = False

发布了138 篇原创文章 · 获赞 203 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qinshangwy/article/details/103625512