- N +

马晓晴,Python字符串的格式化,看这一篇就够了!,龙骨

原标题:马晓晴,Python字符串的格式化,看这一篇就够了!,龙骨

导读:

模板中替换变量用{}包围,且由:分为两部分,其中后半部分format_spec在后面会单独讨论。空代表位置的数字代表keyword的标识符这与函数调用的参数类别是一致的prin...

文章目录 [+]

信任许多人在格式化字符串的时分都用"%s" % v的语法,PEP 3101 提出一种更先进的格式化办法 str.format() 并成为 Python 3 的规范用来替换旧的 %s 格式化语法,CPyt马晓晴,Python字符串的格式化,看这一篇就够了!,龙骨hon 从 2.马晓晴,Python字符串的格式化,看这一篇就够了!,龙骨6 开端现已完成马占山儿子马奎了这一办法(其它解说器未考证)。

format()

新的 format() 办法其实更像是一个简略版的模板引起(Templmoonsorrowate Engine),功用十分丰富。

模板中替换变量用 {} 围住,且由 : 分为两部分,其间后半部分 format_spec 马晓晴,Python字符串的格式化,看这一篇就够了!,龙骨在后面会独自评论。

前半部分有三种用法:

  • 代表贾晨宇身高方位的数字
  • 代表keyword的标识符

这与函数调用的参数类别是共同的

pri马晓晴,Python字符串的格式化,看这一篇就够了!,龙骨nt("{} {}".forma马晓晴,Python字符串的格式化,看这一篇就够了!,龙骨t("Hello", "World"))
# 等同于以下几种
print("{0} {1}".forbreedmerawmat("Hello", "World"))
print("{hello} {world}".format(hello="Hello", world="World"))
print("{0}{1}{0}".format("H", "e")窦兴文)
# Hello World
# Hello World
# Hello World
# HeH

除此之外,就像函数参数的解包相同,format() 中也能够直接运用解包操作

print("{author}.{city}".format(**{"author": "Miracle", "city": "上海"}))
print("{} {}".format(*["Miracle", "上海"]))
Miracle.上海
Miracle 上海

在模板中还能够经过 .identifier 和 [key] 的方法获取变量内的特点或值(需求留意的是 "{}{}" 相当于 "{0}{1}")

data = {'author': 'Miracle', 'like': 'papapa'}
print("Author: {0[author]}, Like: {0[like]}".format(data))
langs = ["Python", "Ruby"]
print("{0[0]} vs {0[1]}".format(langs))
print("\n====\nHelp(format):{.__doc__}".format(str.format))
# Name: Python, Score: 100
# Python vs Ruby
# ====
# Help(format):
# S.format(*args, **kwargs) -> str

强制转化,能够经过 ! + r|s|a 的方法对替换的变量进行强制转化

  • "{!r}" 对变量调用 repr()
  • "{!s}" 对变量调用 str()
  • "{!a}" 对变量调用 ascii()

冒号之后的部分界说输出的款式

align 代表对齐方向,一般要合作 width 运用,而 fill 则是填充的字符(默以为空白):

for align, text in zip("<^>", ["left", "center", "right"]):
# 有必要看懂这句话
print("{:{fill}{align}16}".format(text, fill=align, align=align))
p成渝钒钛科技有限公司rint("{:0=10}".format(100)) # = 只允许果冻勇士无敌版数字
# left<<<<<<<<<<<<
# ^^^^^center^^^^^
# >>>>>>>>>>>right
# 0000000100

一起能够看出,款式设置里边能够嵌套 {} ,可是有必要经过 keyword 指定,且只能嵌套一层。

接下qq麻将作弊器来是符号款式:+|-|' ' 别离指定数字是否需求强制符号(其间空格是指在正数的时分不显现 + 但保存一位空格)

print("{0:+}\n{1:-}\n{0: }".format(3.14, -3.14))
# +3.14
# -3.14
# 3.14

用于表明特别格王梓一式的数字(二进制、十六进制等)是否需求前缀符号

逗号也是用于表明数字时是否需求在千位处进行分隔

0 相当于前面的{:0=} 右对齐并用 0 弥补空位

print("Binary: {0:b} => {0:#b}".format(3))
print("穿越之九峰抗战Large Number: {0:} => {0:,}".format(1.25e6))
print("Padding: {0:16} => {0:016}".format(3))
# Binary: 11 => 0b11
# Large 吴斌求婚歌曲Number: 1250000.0 => 1,250,000.0
# Padding: 3 => 0000000000000003

最终小胖给我们介绍一下了解的小数点精度问题, .n 和格式化类型。

这儿仅给出一些示例,具体内容能够查阅文档:Python学习群:683380553,有大牛塔克肯德基答疑,有资源共享!是一个十分不错的沟通基地!欢迎喜爱Python的小伙伴!

from math import pi
print("pi = {pi:.2}, also = {pi:.7}".f江西紫宸科技有限公司ormat(pi=pi))
# pi = 3.1, also = 80岁巨型娃娃鱼3.141593

Integer

for t in "b c d #o #x #X n".split():
print("Typ性交流e {0:>2} of {1} shows: {1:{t}}".format(t, 97, t=t))
# Type b of 97 shows: 1100001
# Type c of 97 shows: a
# Type d of 97 shows: 97
# Ty姜河娜pe #o of 97 shows: 0o141
# Type #x of 97 sh宁波镇海气候ows: 0x61
# Type #X of 97 shows: 0X61
# Type n of 97 shows: 97

Float

for t, n in zip("eEfFgGn%", [12345, 12345,白姐网 1.3, 1.3, 1, 2, 3.14, 0.985]):
print("Type {} shows: {:.2{t}}".format(t, n, t马晓晴,Python字符串的格式化,看这一篇就够了!,龙骨=t))
# Type e shows: 1.23e+04
# Type E shows风王TIP: 1.23E+04
# Type f shows: 1.30
# Type F shows: 1.30
# Type g shows: 1
# Type G shows: 2
# Type n shows: 3.1
# Type % 马晓晴,Python字符串的格式化,看这一篇就够了!,龙骨shows: 98.50%

String (default)

try:
print("{:s}".format(123))
except:
print("{}".format(456))
# 456

有好的文章希望我们帮助分享和推广,猛戳这里我要投稿

返回列表
上一篇:
下一篇: