Python 程序设计入门(018)—— format() 函数的用法详解

这篇具有很好参考价值的文章主要介绍了Python 程序设计入门(018)—— format() 函数的用法详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python 程序设计入门(018)—— format() 函数的用法详解

一、format() 函数的基本格式

format() 函数可以对数据进行格式化处理,将值转换为由 format_spec 控制的【格式化】表示形式。format() 函数的语法格式如下:

format(value, format_spec)

说明:

(1)value:要转换的数据。

(2)format_spec:格式化解释,取决于值参数的类型;

(3)默认情况下,format_spec 是一个空字符串,通常与调用 str(value) 函数具有相同的效果。

(4)format_spec 参数的格式包括填充值、文字对齐、标志设置、格式化、类型转换、千位符等应用。格式如下:

format_spec ::=[fill[align]] [sign] [z] [#] [0] [width] [grouping_option] [.precision] [type]
其中:
fill ::= <any character>
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= digit+
grouping_option ::= "_" | ","
precision ::= digit+
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X"

二、不提供 format_spec 参数

如果不提供 format_spec 参数,默认将其他格式数据转换为字符串类型,和调用 str(value) 函数的效果相同。

例如:文章来源地址https://www.toymoban.com/news/detail-776271.html

print("圆周率:" + format(3.14))  # 将浮点数转换为字符串
print("圆周率:" + str(3.14))

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
圆周率:3.14
圆周率:3.14

三、设置字符串的对齐方式(align)

使用如下选项设置字符串的对齐方式:

符号 含义
‘<’ 强制字段在有效空间内保持左对齐(这是大多数对象的默认设置)
‘>’ 强制字段在有效空间内保持右对齐(这是大多数对象的默认设置)
‘=’ 强制将填充字符放置在符号(如果有)之后、数字之前,例如:+000000120。这种对齐选项仅对数字类型有效。当【0】紧接在字符宽度之前时,它将成为填充数字时的默认值。
‘^’ 强制字段在有效空间内保持居中对齐

例如:

print("圆周率:" + format(3.14,"10.2f") + "|end") # 默认为右对齐
print("圆周率:" + format(3.14,">10.2f") + "|end") # 设置为右对齐
print("圆周率:" + format(3.14,"<10.2f") + "|end") # 设置为左对齐
print("圆周率:" + format(3.14,"^10.2f") + "|end") # 设置为居中对齐
print("圆周率:" + format(3.14,"A>10.2f") + "|end") # 设置为右对齐,前面填充A
print("圆周率:" + format(-3.14,"A>10.2f") + "|end") # 设置为右对齐,前面填充A(A位于-符号之前)
print("圆周率:" + format(-3.14,"A=10.2f") + "|end") # 数字前面填充A(A位于-符号之后)

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
圆周率:      3.14|end
圆周率:      3.14|end
圆周率:3.14      |end
圆周率:   3.14   |end
圆周率:AAAAAA3.14|end
圆周率:AAAAA-3.14|end
圆周率:-AAAAA3.14|end

四、设置 sign 选项

sign 选项只对数字类型有效,sign 选项的含义如下:

符号 含义
‘+’ 表示正负数均可使用符号
‘-’ 指示符号只被用于负数(这是默认行为)
’ ’ 表示正数应使用前导空格,负数使用负号

例如:

print("圆周率:" + format(3.14,"+") + "|end")  # 正数前面加+号
print("圆周率:" + format(-3.14,"+") + "|end") # 负数前面加-号
print("圆周率:" + format(3.14,"-") + "|end")  # 正数前面不加+号
print("圆周率:" + format(-3.14,"-") + "|end") # 负数前面加+号
print("圆周率:" + format(3.14," ") + "|end")  # 正数前面加空格
print("圆周率:" + format(-3.14," ") + "|end") # 负数前面加-号

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
圆周率:+3.14|end
圆周率:-3.14|end
圆周率:3.14|end
圆周率:-3.14|end
圆周率: 3.14|end
圆周率:-3.14|end

四、设置 # 选项

# 选项仅对整型、浮点型和负数型有效。# 选项的含义如下:

符号 含义
# # 选项仅对整型、浮点型和负数型有效。
对于整数,当使用二进制、八进制或十六进制输出时,该选项会在输出值中添加相应的前缀:0b、0o、0x 或0X。
对于浮点型和负数型,即使后面没有数字,替换形式会导致转换结果始终包含小数点字符。
对于 g 和 G 的科学计数法小数点的转换,不会从结果中删除尾随零。

例如:

print("以下为整型数据的输出:")
print(format(11) + "|end")      # 输出结果为十进制
print(format(11,"#") + "|end")  # 输出结果为十进制
print(format(11,"b") + "|end")  # 输出结果为二进制
print(format(11,"#b") + "|end") # 输出结果为二进制(输入0b)
print(format(11,"o") + "|end")  # 输出结果为八进制
print(format(11,"#o") + "|end") # 输出结果为八进制(输入0o)
print(format(11,"x") + "|end")  # 输出结果为十六进制
print(format(11,"#x") + "|end") # 输出结果为十六进制(输入0x)
print(format(11,"X") + "|end")  # 输出结果为十六进制
print(format(11,"#X") + "|end") # 输出结果为十六进制(输入0X)
print("以下为浮点型数据的输出:")
print(format(11.8,"10.0f") + "|end")   # 无小数点
print(format(11.8,"#10.0f") + "|end")  # 有小数点
print(format(-11.8,"#10.0F") + "|end") 

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
以下为整型数据的输出:
11|end
11|end
1011|end
0b1011|end
13|end
0o13|end
b|end
0xb|end
B|end
0XB|end
以下为浮点型数据的输出:
        12|end
       12.|end
      -12.|end

五、设置 grouping_option 选项

grouping_option 选项的含义如下:

符号 含义
, 表示使用逗号作为千位分隔符。
_ 对浮点型和整型使用下划线作为千位分隔符。
对于整型 b、o、x 和 x,将每4位插入下划线。

例如:

print(format(12345678) + "|end")      # 不使用千位分隔符
print(format(12345678,",") + "|end")  # 使用逗号作为千位分隔符
print(format(12345678.2541,",") + "|end") # 使用逗号作为千位分隔符
print(format(12345678.2541,"_") + "|end") # 使用下划线作为千位分隔符
print(format(12345678,"_b") + "|end")  # 使用逗号作为千位分隔符

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
12345678|end
12,345,678|end
12,345,678.2541|end
12_345_678.2541|end
1011_1100_0110_0001_0100_1110|end

六、设置 【0】和 width 选项

[0] 和 width 选项的含义如下:

符号 含义
[0]
width
width:定义字段总宽度,包括任何前缀、分隔符和其他格式字符。如果未指定,则字段宽度将由输出内容决定。
如果未指定对齐方式,则在宽度字段前面加一个零(0),相当于对齐类型 sign 为 = 的填充字符 0。

例如:

print(format(3.14) + "|end")        # 不指定宽度
print(format(3.14,"10") + "|end")   # 指定宽度为10,默认右对齐
print(format(3.14,"<10") + "|end")  # 指定宽度为10,设置左对齐
print(format(3.14,"010") + "|end")  # 指定宽度为10,左边用0填充

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
3.14|end
      3.14|end
3.14      |end
0000003.14|end

七、设置 【.precision】选项

[.precision] 选项的含义如下:

符号 含义
[.precision] 设置浮点数的精度,是一个十进制整数。
表示浮点类型 f 的小数点之后应显示多少位数字。
表示科学计数法小数类型 g 的小数点前和后应显示多少位数。

例如:

print(format(3.1415926) + "|end")        # 不指定宽度
print(format(3.1415926,"10.1f") + "|end") # 指定宽度为10,小数位数1
print(format(3.1415926,"10.2f") + "|end") # 指定宽度为10,小数位数2
print(format(3.1415926,".1f") + "|end")   # 不指定宽度,小数位数1
print(format(3.1415926,".2f") + "|end")   # 不指定宽度,小数位数2

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
3.1415926|end
       3.1|end
      3.14|end
3.1|end
3.14|end

八、设置 type 选项

type 选项针对不同的数据类型有如下格式:

1、字符串类型

type 选项及含义如下:

符号 含义
s 字符串格式。
None 和 s 一样。

例如:

print(format("Chinese","0<10") + "|end")  # 左对齐,右侧用0填充
print(format("Chinese","0>10") + "|end")  # 右对齐,左侧用0填充
print(format("Chinese","0^10") + "|end")  # 居中对齐,左右两侧用0填充
print(format("Chinese","<10.3") + "|end") # 左对齐,截取左端3个字符
print(format("Chinese",">10.3") + "|end") # 右对齐,截取左端3个字符
print(format("Chinese","^10.3") + "|end") # 居中对齐,截取左端3个字符

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
Chinese000|end
000Chinese|end
0Chinese00|end
Chi       |end
       Chi|end
   Chi    |end
2、整数类型

type 选项及含义如下:

符号 含义
b 二进制格式
c 将字符在打印之前将整数转换为相应的 unicode 字符
d 十进制整数
o 八进制格式
x 十六进制格式,使用小写字母表示 9 以上的数码
X 十六进制格式,使用大写字母表示 9 以上的数码
n 与 d 相似,不同之处在于它会使用当前区域设置来插入适当的数字分隔字符

例如:

print(format(1234567,"b") + "|end")  # 二进制
print(format(1234567,"o") + "|end")  # 八进制
print(format(1234567,"d") + "|end")  # 十进制
print(format(1234567,"n") + "|end")  # 十进制
print(format(1234567,"x") + "|end")  # 十六进制
print(format(1234567,"X") + "|end")  # 十六进制
print(format(4567,"c") + "|end")     # 打印Unicode字符

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
100101101011010000111|end
4553207|end
1234567|end
1234567|end
12d687|end
12D687|end
ᇗ|end
3、浮点型

type 选项及含义如下:

符号 含义
e 科学计数法。
对于一个给定的精度 p,将数字格式化为以字母 e 分隔系数和指数的科学计数法形式。
系数在小数点之前有一位,之后有 p 位,总计 p + 1 个有效数位。
如未指定精度,则会对 float 采用小数点之后 6 位精度,而对 Decimal 则显示所有系数位。
如果小数点之后没有数位,则小数点也会被略去,除非使用了 # 选项。
E 科学计数法。 与 e 相似,不同之处在于它使用大写字母 E 作为分隔字符。
f 定点表示法。
对于一个给定的精度 p,将数字格式化为在小数点之后恰好有 p 位的小数形式。
如未指定精度,则会对 float 采用小数点之后 6 位精度,而对 Decimal 则使用大到足够显示所有系数位的精度。
如果小数点之后没有数位,则小数点也会被略去,除非使用了# 选项。
g (1)常规格式。 对于给定精度 p >= 1,这会将数值舍入到 p 个有效数位,再将结果以定点表示法或科学计数法进行格式化,具体取决于其值的大小。 精度 0 会被视为等价于精度1。
(2)如未指定精度,会对 float 采用 6 个有效数位的精度。 对于 Decimal,结果的系数会沿用原值的系数数位;对于绝对值小于 1e-6 的值以及最小有效数位的位值大于 1 的数值将会使用科学计数法,在其他情况下则会使用定点表示法即科学计数法。
% 百分比。 将数字乘以 100 并显示为定点(f)格式,后面带一个百分号。

例如:

print("以下为科学计数法表示:")
print(format(1234567.123,"e") + "|end")     # 6位小数
print(format(1234567.123,"15.10e") + "|end")# 10位小数
print(format(1234567.123,"15.10E") + "|end")# 10位小数,字母E大写
print(format(1234567.123,"15.0e") + "|end") # 0位小数
print(format(1234567.123,"#15.0e") + "|end")# 0位小数
print("以下为定点数表示:")
print(format(1234567.123,"#15.10f") + "|end")# 10位小数
print(format(1234567.123,"15.0f") + "|end")  # 0位小数
print(format(1234567.123,"#15.0f") + "|end") # 0位小数
print(format(0.123,".2%") + "|end")          # 百分比

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
以下为科学计数法表示:
1.234567e+06|end
1.2345671230e+06|end
1.2345671230E+06|end
          1e+06|end
         1.e+06|end
以下为定点数表示:
1234567.1229999999|end
        1234567|end
       1234567.|end
12.30%|end

到了这里,关于Python 程序设计入门(018)—— format() 函数的用法详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 程序设计入门(022)—— 循环结构程序设计(3):循环的嵌套

    在编程时,循环语句的嵌套是很常见的,循环嵌套是指在一个循环语句中又包含另一个循环语句。例如:在 for 循环中嵌入另一个 for 循环或 while 循环,在 while 循环中嵌入另一个 while 循环或 for 循环等。 1、使用双层 for 循环 代码如下: 代码如下: 1、使用 for 循环中嵌套 w

    2024年02月12日
    浏览(24)
  • Python 程序设计入门(024)—— Python 的文件操作

    为了能够长期保存程序中的数据,需要将其保存到磁盘文件中。Python 提供了内置的文件对象和对文件、目录进行操作的内置模块。 Python 中内置了文件(file)对象,使用文件对象时,需要先通过内置的 open() 函数创建一个文件对象,然后通过该对象提供的方法进行操作。 使用

    2024年02月07日
    浏览(35)
  • 【Python 程序设计】包和数据人员入门【01/8】

            一个坚实的Python项目的基础是掌握模块,包和导入。 以下文章是有关 Python 数据工程系列文章的一部分,旨在帮助数据工程师、数据科学家、数据分析师、机器学习工程师或其他刚接触 Python 的人掌握基础知识。         迄今为止,本初学者指南包括: 第 1 部

    2024年02月09日
    浏览(25)
  • Python 程序设计入门(008)—— 列表的操作(3):列表推导式

    使用列表推导式可以快速生成一个列表。或者根据某个列表生成满足指定需求的列表。列表推导式包含在方括号内,它由一个表达式、一个或多个 for 循环和一个用于过滤生成的列表的可选条件组成。 列表推导式的语法格式如下: 说明: (1)Expressinon:表达式,用于计算列

    2024年02月14日
    浏览(36)
  • Python 程序设计入门(025)—— 使用 os 模块操作文件与目录

    Python 内置了 os 模块及其子模块 os.path,用于对目录或文件进行操作。在使用 os 模块及其子模块 os.path 模块时,需要使用 import 导入该模块,才能使用它们提供的函数或方法。 1、os 模块提供的操作目录的函数 os 模块提供的操作目录的函数如下表所示: 函数 说明 getcwd() 返回当

    2024年02月11日
    浏览(31)
  • python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

    (格式化替换,替换,列表字典替换,类格式化, 魔法函数格式化,对齐及填充格式化,format对齐打印) 本篇目录内容: 📘  一、format() 函数的语法 📘  二、format() 函数基本用法 📘  三、用对齐及填充的方式格式化 📘  四、用format函数实现对齐打印 📘  五、其他内容待

    2024年02月07日
    浏览(72)
  • format()函数的用法

    Python中的 format() 函数用于格式化字符串。它可以将不同类型的数据格式化为字符串中指定的格式。以下是 format() 函数的各种用法及示例: \\\"{参数序号:格式控制标记}\\\".format() 格式内容: .精度-后面可以加类型 类型 整数类型:b--2进制、c--Unicode、d--十进制、o--八进制、x/X--十

    2024年02月07日
    浏览(38)
  • 【程序设计】函数式编程

    函数式编程(Functional Programming,FP)是一种编程范式,它强调使用纯函数(Pure Function)来构建程序。这些纯函数接受输入并返回输出,不改变系统状态或在执行过程中引入副作用(Side Effects),这使得函数式编程具有可预测性、可维护性和可测试性等优点。 以下是一些函数

    2023年04月24日
    浏览(73)
  • C++程序设计函数部分(定义+实例)

    目录 1、内联函数 2、默认形参值函数 3、重载函数 4、系统函数 (1)定义 在函数前面加上 inline 申明 eg: inline double CalArea(double radius) { return 3.14*radius*radius; } void main() { double r(3.0); double area; area=CalArea(r); coutareaendl; } (2)作用 提高运行的速度。 对于一些程序代码小,运行时间

    2023年04月14日
    浏览(30)
  • C++ 程序设计入门

    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 程序是算法与数据结构的载体,是计算机用以

    2024年02月11日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包