# Python3 字符串格式化 字符串的格式化方法分为两种,分别为占位符(%)和format方式。占位符方式在Python2.x中用的比较广泛,随着Python3.x的使用越来越广,format方式使用的更加广泛。 ## 1.占位符(%) | Format | Description | |--------|-------------| | %% | 百分号标记 | | %c | 字符及其 ASCII 码 | | %s | 字符串 | | %d | 有符号整数(十进制) | | %u | 无符号整数(十进制) | | %o | 无符号整数(八进制) | | %x | 无符号整数(十六进制) | | %X | 无符号整数(十六进制大写字符) | | %e | 浮点数字(科学计数法) | | %E | 浮点数字(科学计数法,用 E 代替 e) | | %f | 浮点数字(用小数点符号) | | %g | 浮点数字(根据值的大小采用 %e 或 %f) | | %G | 浮点数字(类似于 %g) | | %p | 指针(用十六进制值打印的内存地址) | | %n | 存储输出字符的数量放进参数列表的下一个变量中 | ### 1.1.实例 %d ```python age = 29 print("my age is %d" %age) # my age is 29 ``` ### 1.2.实例 %s ```python name = "makes" print("my name is %s" %name) # my name is makes ``` ### 1.3.实例 %f ```python print("%6.3f" % 2.3) # 2.300 print("%f" %2.3) # 2.300000 ``` ## 2.format 方法 ### 2.1.位置映射 ![位置映射](img/Python3_字符串格式化/001.png) 实例: ```python print("{}:{}".format('192.168.0.100',8888)) # 192.168.0.100:8888 ``` ### 2.2.关键字映射 ![关键字映射](img/Python3_字符串格式化/002.png) 实例: ```python print("{server}{1}:{0}".format(8888,'192.168.1.100',server='Web Server Info :')) # Web Server Info :192.168.1.100:8888 ``` ### 2.3.元素访问 ![元素访问](img/Python3_字符串格式化/003.png) ![元素访问](img/Python3_字符串格式化/004.png) 实例: ```python print("{0[0]}.{0[1]}".format(('baidu','com'))) # baidu.com ``` ### 2.4.填充对齐 ![填充对齐](img/Python3_字符串格式化/005.png) 实例: ```python print("{0}*{1}={2:0>2}".format(3,2,2*3)) # 3*2=06 print("{:*^30}".format('centered')) # ***********centered*********** ``` 实例: ```python for i in range(1,10): a = 1 while a <= i: print("{0}*{1}={2:0>2}".format(a,i,a*i),end="\t") a +=1 print() """ 1*1=01 1*2=02 2*2=04 1*3=03 2*3=06 3*3=09 1*4=04 2*4=08 3*4=12 4*4=16 1*5=05 2*5=10 3*5=15 4*5=20 5*5=25 1*6=06 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=07 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=08 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=09 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 ``` ### 2.5.精度设置 ![精度设置](img/Python3_字符串格式化/006.png) 实例: ```python print("{:.3f}".format(2.1415)) # 2.142 print("{:.10f}".format(3.1415)) # 3.1415000000 ```