''' 在python的使用过程中,有时需要将输出的字符串做统一规定,因此需要提前编写一个字符串的模板。 模板中有格式符,这些格式符为最后输的字符串预先占据位置, 并规定其应该呈现的格式,包括字符的位置、对齐方式、空位补充方式等。 Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式。 Python中还有其他的格式化字符串的方式,但%操作符的使用是最方便的。 %格式符的语法:%[(name)][flags][width].[precision]typecode。 (name)参数:当使用字典作为真实值的存放容器,name在此对应输出值关联的字典的键名,必须使用小括号将键名括起来, 如果字典中不存在该键,则引发异常,否则输出该键对应的值; flags可以有+,-,' '或0。 +表示应该包含数字的正负号。-表示左对齐,没有则表示右对齐。 ' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充; width表示该输出值占用的宽度; precision表示小数点后精度; typecode表示输出值的类型, 具体含义如下: %s 字符串 (采用str()的显示) %r 字符串 (采用repr()的显示) #repr() 函数将对象转化为供解释器读取的形式,输出的字符加引号。 %c 单个字符 %b 二进制整数 %d,%i 十进制整数 %o 八进制整数 %x,%X 十六进制整数 %e,%E 指数 (基底写为e,E) %f,%F 浮点数 %g,%G 指数或浮点数 (根据显示长度) %u 无符号数(没有细查文档,经测试可以输出负数) %% 字符"%" ''' example_1 = "I'm %s, I'm %d years old." % ('wrh', 29) print(example_1) ''' 输出结果: I'm wrh, I'm 29 years old. ''' example_2 = ("I'm %(name)s, I'm %(age)d years old." % {'name':'wrh', 'age':29}) print(example_2) ''' 输出结果: I'm wrh, I'm 29 years old. ''' print("%+10x" % 10) print("%04d" % 5) print("%6.3f" % 2.3) print("%.*f" % (4, 1.2)) print("%*.f" % (4, 1.2)) ''' 输出结果: +a 0005 2.300 1.2000 1 ''' a = '30c' F = 1.8*float(a[0:-1]) + 32 print("%.1fF" % F) ''' 输出结果: 86.0F ''' student={'name':'小明','class':20190301,'score':597.5} print('%s同学' % student['name']) print('%10s班 %-4s同学,总分:%7.2f' % (student['class'],student['name'],student['score'])) format='%10s班 %-4s同学,总分:%7.2f' value=(student['class'],student['name'],student['score']) print(format % value) format='%10s班 %-4s同学,总分:%7.2f' value=(student['class'],student['name'],student['score']) output=format % value print(output) print('%(class)10s班 %(name)-4s同学,总分:%(score)7.2f' % student) format='%(class)10s班 %(name)-4s同学,总分:%(score)7.2f' output= format % student print(output) ''' 输出结果: 小明同学 20190301班 小明 同学,总分: 597.50 20190301班 小明 同学,总分: 597.50 20190301班 小明 同学,总分: 597.50 20190301班 小明 同学,总分: 597.50 20190301班 小明 同学,总分: 597.50 '''