python 字符串格式化输出 %d,%s及 format函数, 数字百分化输出

旧式格式化方式:%s,%d

1、顺序填入格式化内容

s = "hello %s, hello %d"%("world", 100)
print(s)<br>
结果: 'hello world, hello 100'

2、使用关键字参数

s= "%(name)s age %(age)d"%{"name":"Tom", "age":10}<br>print(s)
结果:Tom name 10

常用的格式化符号

  • %s 对应的是字符串类型(str)
  • %d 对应十进制整数型的(int)
  • %f 对应浮点数(float)
  • %r 对应字符串(repr)

3、输出百分数

"%.2f%%"%(0.123)
# = 0.12%

利用format()函数

1、无参数情况

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
s = "hello {}, hello {}".format("world","Python")
print(s)
结果:"hello world, hello Python"

2、位置参数

s = "hello {1}, hello {0}".format("world","Python")
print(s)
结果:"hello Python, hello world"

3、关键词参数

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
s = "hello {first}, hello{second}".format(first="world",second="Python")
print(s)
结果: "hello world, hello Python"

4、位置参数与关键词参数混用

位置参数放在关键词参数前面,否则报错

s = "hello {first}, hello{0}".format(Python, first="world")
print(s)
结果:"hello world, hello Python"

5、"!a"(运用ascii()), “!s”(运用str()), “!r”(运用repr())可以在格式化之前转换相应的值。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
In [21]: contents = "eels"
 
In [22]: print("My hovercraft is full if {}.".format(contents))
My hovercraft is full if eels.
 
In [23]: print("My hovercraft is full if {!r}.".format(contents))
My hovercraft is full if 'eels'.
 
In [24]: print("My hovercraft is full if {!s}.".format(contents))
My hovercraft is full if eels.
 
In [25]: print("My hovercraft is full if {!a}.".format(contents))
My hovercraft is full if 'eels'.

6、字段后可以用":"和格式指令,更好的控制格式。

(1)、下段代码将π 近似到小数点后3位

import math
print("The value of PI is approximately {0:.3f}.".format(math.pi))
结果:3.142

(2)、":"后面紧跟一个整数可以限定该字段的最小宽度

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
for name, phone in table.items():
     print('{0:10} ==> {1:10d}'.format(name, phone))
结果:
Jack       ==>       4098
Dcab       ==>       7678
Sjoerd     ==>       4127

(3)、数字加千分位符

print("{0:,.2f}".format(12345678.12345))
# 输出 12,345,678.12

注意:使用format输出最终都为字符串类型

总结:

%格式化为python内置的操作符,常用的为本文提到的这几个,还有一些其他的,如进制相关的,想了解可以查找其他资料。format是利用Python内置函数,关于format还有更多的用法,如格式限定,精度确定,填充与对齐等。

发布了706 篇原创文章 · 获赞 740 · 访问量 103万+

猜你喜欢

转载自blog.csdn.net/sinat_38682860/article/details/104051059
今日推荐