1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280
|
"I am %03d" % (20,) 输出:'I am 020'
'I like %s.' % 'Python' 输出:'I like Python.'
'%3.2f%% , 0x%x, 0X%02X' % (89.7654, 10, 15) 输出:'89.77% , 0xa, 0X0F'
"I am %-5d" % (20,) 输出:'I am 20 '
"{}:{}".format('192.168.1.100',8888) 输出:192.168.1.100:8888
"{server} {1}:{0}".format(8888, '192.168.1.100', server='Web Server Info : ') 输出:Web Server Info : 192.168.1.100:8888
"{0[0]}.{0[1]}".format(('magedu','com')) 输出:magedu.com
from collections import namedtuple Point = namedtuple('_Point','x y') p = Point(4,5) "{{{0.x},{0.y}}}".format(p) 输出:'{4,5}'
'{0}*{1}={2:<2}'.format(3,2,2*3) 输出:3*2=6 '{0}*{1}={2:<02}'.format(3,2,2*3) 输出:3*2=60 '{0}*{1}={2:>02}'.format(3,2,2*3) 输出:3*2=06 '{:^30}'.format('centered') 输出: centered '{:*^30}'.format('centered') 输出:***********centered***********
"int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42) 输出:int: 42; hex: 2a; oct: 52; bin: 101010 "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42) 输出:int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010 octets = [192, 168, 0, 1] '{:02X}{:02X}{:02X}{:02X}'.format(*octets) 输出:C0A80001
练习 >>> format = "Hello, %s. %s enough for ya?" >>> values = ('world', 'Hot') >>> format % values 'Hello, world. Hot enough for ya?'
>>> format = "Hello, %s. %s enough for ya?" >>> values = ('world', 'Hot') >>> format % values 'Hello, world. Hot enough for ya?'
>>> from string import Template >>> tmpl = Template("Hello, $who! $what enough for ya?") >>> tmpl.substitute(who="Mars", what="Dusty") 'Hello, Mars! Dusty enough for ya?'
>>> "{}, {} and {}".format("first", "second", "third") 'first, second and third' >>> "{0}, {1} and {2}".format("first", "second", "third") 'first, second and third'
>>> "{3} {0} {2} {1} {3} {0}".format("be", "not", "or", "to") 'to be or not to be'
>>> from math import pi >>> "{name} is approximately {value:.2f}.".format(value=pi, name="π") 'π is approximately 3.14.'
>>> "{name} is approximately {value}.".format(value=pi, name="π") 'π is approximately 3.141592653589793.'
>>> from math import e >>> f"Euler's constant is roughly {e}." "Euler's constant is roughly 2.718281828459045."
>>> "Euler's constant is roughly {e}.".format(e=e) "Euler's constant is roughly 2.718281828459045."
>>> "{{ceci n'est pas une replacement field}}".format() "{ceci n'est pas une replacement field}"
============================================================================================ 在格式字符串中,最激动人心的部分为替换字段。替换字段由如下部分组成,其中每个部分都是可选的。 * 字段名:索引或标识符,指出要设置哪个值的格式并使用结果来替换该字段。除指定值外,还可指定值的特定部分,如列表的元素。 * 转换标志:跟在叹号后面的单个字符。当前支持的字符包括r(表示repr) 、s(表示str)和a(表示ascii)。如果你指定了转换标志,将不使用对象本身的格式设置机制,而是使用指定的函数将对象转换为字符串,再做进一步的格式设置。 * 格式说明符:跟在冒号后面的表达式(这种表达式是使用微型格式指定语言表示的) 。格式说明符让我们能够详细地指定最终的格式,包括格式类型(如字符串、浮点数或十六进制数),字段宽度和数的精度,如何显示符号和千位分隔符,以及各种对齐和填充方式。 ============================================================================================
>>> "{foo} {} {bar} {}".format(1, 2, bar=4, foo=3) '3 1 4 2'
>>> "{foo} {1} {bar} {0}".format(1, 2, bar=4, foo=3) '3 2 4 1'
>>> fullname = ["Alfred", "Smoketoomuch"] >>> "Mr {name[1]}".format(name=fullname) 'Mr Smoketoomuch' >>> import math >>> tmpl = "The {mod.__name__} module defines the value {mod.pi} for π" >>> tmpl.format(mod=math) 'The math module defines the value 3.141592653589793 for π'
>>> print("{pi!s} {pi!r} {pi!a}".format(pi="π")) π 'π' '\u03c0'
>>> "The number is {num}".format(num=42) 'The number is 42' >>> "The number is {num:f}".format(num=42) 'The number is 42.000000'
>>> "The number is {num:b}".format(num=42) 'The number is 101010'
============================================================================================ 类型 含义 b 将整数表示为二进制数 c 将整数解读为Unicode码点 d 将整数视为十进制数进行处理,这是整数默认使用的说明符 e 使用科学表示法来表示小数(用e来表示指数) E 与e相同,但使用E来表示指数 f 将小数表示为定点数 F 与 f相同,但对于特殊值(nan和 inf),使用大写表示 g 自动在定点表示法和科学表示法之间做出选择。这是默认用于小数的说明符,但在默认情况下至少有1位小数 G 与 g相同,但使用大写来表示指数和特殊值 n 与 g相同,但插入随区域而异的数字分隔符 o 将整数表示为八进制数 s 保持字符串的格式不变,这是默认用于字符串的说明符 x 将整数表示为十六进制数并使用小写字母 X 与 x相同,但使用大写字母 % 将数表示为百分比值(乘以100,按说明符 f设置格式,再在后面加上%) ============================================================================================
>>> "{num:10}".format(num=3) ' 3' >>> "{name:10}".format(name="Bob") 'Bob '
>>> "Pi day is {pi:.2f}".format(pi=pi) 'Pi day is 3.14'
>>> "{pi:10.2f}".format(pi=pi) ' 3.14'
>>> "{:.5}".format("Guido van Rossum") 'Guido'
>>> 'One googol is {:,}'.format(10**100) 'One googol is 10,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,00 0,000,000,000,000,000,000,000,000,000,000,000,000,000,000'
>>> '{:010.2f}'.format(pi) '0000003.14'
>>> print('{0:<10.2f}\n{0:^10.2f}\n{0:>10.2f}'.format(pi)) 3.14 3.14 3.14
>>> "{:$^15}".format(" WIN BIG ") '$$$ WIN BIG $$$'
>>> print('{0:10.2f}\n{1:10.2f}'.format(pi, -pi)) 3.14 -3.14 >>> print('{0:10.2f}\n{1:=10.2f}'.format(pi, -pi)) 3.14 - 3.14
>>> print('{0:-.2}\n{1:-.2}'.format(pi, -pi)) 3.1 -3.1 >>> print('{0:+.2}\n{1:+.2}'.format(pi, -pi)) +3.1 -3.1 >>> print('{0: .2}\n{1: .2}'.format(pi, -pi)) 3.1 -3.1
>>> "{:b}".format(42) '101010' >>> "{:#b}".format(42) '0b101010'
>>> "{:g}".format(42) '42' >>> "{:#g}".format(42) '42.0000'
width = int(input('Please enter width: '))
price_width = 10 item_width = width - price_width
header_fmt = '{{:{}}}{{:>{}}}'.format(item_width, price_width) fmt = '{{:{}}}{{:>{}.2f}}'.format(item_width, price_width)
print('=' * width)
print(header_fmt.format('Item', 'Price'))
print('-' * width)
print(fmt.format('Apples', 0.4)) print(fmt.format('Pears', 0.5)) print(fmt.format('Cantaloupes', 1.92)) print(fmt.format('Dried Apricots (16 oz.)', 8)) print(fmt.format('Prunes (4 lbs.)', 12))
print('=' * width) 这个程序的运行情况类似于下面这样: Please enter width: 35 =================================== Item Price ----------------------------------- Apples 0.40 Pears 0.50 Cantaloupes 1.92 Dried Apricots (16 oz.) 8.00 Prunes (4 lbs.) 12.00 ===================================
|