【Python】print 常用格式化输出
一:常用字符串格式化符号
1:%c 格式化单个字符或其ASCII码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
>>> str = "H" >>> print ("%c World!"%(str)) H World! >>> ## H 的ASCII为72 >>> asc = 72 >>> print ("%c World!"%(asc)) H World! >>> ## %c只能为单个字符,如果是字符串的话,那么将提示错误信息 >>> str = "Hello" >>> print ("%c World!"%(str)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: %c requires int or char >>> |
2:%s 格式化字符串
1 2 3 4 |
>>> str = "Hello" >>> print ("%s World!"%(str)) Hello World! >>> |
3:%d 格式化整数
1 2 3 |
>>> print ("I am %d years old."%(18)) I am 18 years old. >>> |
4:%f 格式化浮点数字,可指定小数点后的精度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
## 格式化为浮点数字,小数位默认 >>> print ("Height(m): %f"%(1.77)) Height(m): 1.770000 >>> ## 格式化为浮点数字,小数保留2位 >>> print ("Height(m): %.2f"%(1.77)) Height(m): 1.77 >>> ## 格式化为浮点数字,指定宽度(显示总宽度为10,包括小数点),小数保留2位 >>> print ("Height(m): %10.2f"%(1.77)) Height(m): 1.77 >>> ## 格式化为浮点数字,指定宽度(显示总宽度为10,包括小数点,位数不够用0补齐),小数保留2位 >>> print ("Height(m): %010.2f"%(1.77)) Height(m): 0000001.77 >>> |
5:%e (%E)科学记数法
注:小写e和大写E 结果是一样的,只是显示结果的时候,小写e显示为小写e,大写E显示为大写E
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
## 打印整数7800000000 >>> print ("%d"%(7800000000)) 7800000000 >>> ## 利用科学记数法显示7800000000 >>> print ("%e"%(7800000000)) 7.800000e+09 >>> ## 小数点保留2为的科学记数法 >>> print ("%.2e"%(7800000000)) 7.80e+09 >>> ## 利用科学记数法显示0.0000015,科学记数法显示且保留2位小数 >>> print ("%.2E"%(0.0000015)) 1.50E-06 >>> |
6:%g (%G)等价于%f %e (%f %E)
1 2 3 4 5 6 |
## 我们看下面的结果,0.15直接格式化为浮点型 >>> print ("%g"%(0.0000015)) 1.5e-06 >>> print ("%G"%(7800000000)) 7.8E+09 >>> |
二:常用格式化辅助指令
1:“-”左对齐
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
## 以打印字符串为例,输出Hello world >>> print ("%s World!"%("Hello")) Hello World! >>> ## %s中间加个5,表示长度是5,因为hello本身就为5,所以没有什么变化 >>> print ("%5s World!"%("Hello")) Hello World! >>> ## %s中间加个3,表示长度是3,因为hello本身就为5,这个3并未起作用 >>> print ("%3s World!"%("Hello")) Hello World! >>> ## %s中间加个10,表示长度是10,这个可以很清楚的看到,在Hello前补了一些空格,凑成10个字符的长度 >>> print ("%10s World!"%("Hello")) Hello World! >>> ## “-”号表示该输出字符串左对齐,我们看hello前面补的5个空格变到了后面 >>> print ("%-10s World!"%("Hello")) Hello World! >>> |
2:“*”,传参时指定宽度或精度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
## 打印个数值 >>> print (3.1415926) 3.1415926 >>> ## 打印浮点型,默认会截断小数位 >>> print ("%f"%3.1415926) 3.141593 >>> ## .*f,意思是,具体保留几位小数,由后面的参数传入,小数位为2 >>> print ("%.*f"%(2,3.1415926)) 3.14 >>> ## *.*f,意思是宽度和小数位都由后面的参数传入,宽度为8,小数位为2 >>> print ("%*.*f"%(8,2,3.1415926)) 3.14 >>> |
3:“+”,在正数前加上一个正号,针对负数此“+”号无意义
1 2 3 4 5 6 7 8 9 |
>>> print ("%+f"%3.1415926) +3.141593 >>> >>> print ("%+.2f"%3.1415926) +3.14 >>> >>> print ("%+.2f"%-3.1415926) -3.14 >>> |
4:“0”显示数字前补0,默认补空格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
## 格式化为浮点型 >>> print ("%f"%3.1415926) 3.141593 >>> ## 格式化为浮点型,保留2位小数 >>> print ("%.2f"%3.1415926) 3.14 >>> ## 格式化为浮点型,总宽度为10位,保留2位小数,此时我们看【默认值】用空格来补位至10位 >>> print ("%10.2f"%3.1415926) 3.14 >>> ## 格式化为浮点型,总宽度为10位,保留2位小数,0补位至10位 >>> print ("%010.2f"%3.1415926) 0000003.14 >>> |
5:“%%”表示一个%
1 2 3 |
>>> print ("%.2f%%"%99) 99.00% >>> |
三:举例
1:字符串中包含多个格式化字符
1 2 3 4 5 6 7 8 |
>>> str = "My name is %s,I'm %d years old."%("xxf",20) >>> print (str) My name is xxf,I'm 20 years old. >>> ## 也可以一句话写出来 >>> print ("My name is %s,I'm %d years old."%("xxf",20)) My name is xxf,I'm 20 years old. >>> |
2:多个字符格式化,宽度相同左对齐
1 2 3 |
>>> print ("Name:%-11sGender:%-11sHeight:%-11.2fPhone:%-11s"%("xxf","Male",1.77,15800000000)) Name:xxf Gender:Male Height:1.77 Phone:15800000000 >>> |