Python【3】:格式化输出

news/2024/11/21 1:29:29/

文章目录

  • 前言
  • 1. 通过 %\%% 实现
    • 1.1. 语法
    • 1.2. 常见格式化符号
    • 1.3. 格式化操作符辅助指令
  • 2. 通过 format() 函数实现
    • 2.1. 语法
    • 2.2. 用法
      • 2.2.1. 基本用法
      • 2.2.2. 数字格式化


前言

在做题与实际应用中,经常会出现需要格式化(输出)字符串的情况,本文主要介绍 Python 格式化字符串的方法


1. 通过 %\%% 实现

1.1. 语法

Python 支持格式化字符串的输出,最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在字符串内部,% 后紧跟占位符,有几个占位符,就需要几个变量或者值。待输出的变量和值需要用括号括起来,且顺序需要与占位符一一对应。如果只有一个 % 和占位符,括号可以省略。

  • 示例:
print("%s is %d years old." %('Horace', 20))
  • 输出结果
Horace is 20 years old.

1.2. 常见格式化符号

  • %c
    • 格式化字符及其 ASCII
  • %s
    • 格式化字符串
    • 可以将任何数据转换为字符串
  • %d
    • 格式化整数
  • %u
    • 格式化无符号整型
  • %o
    • 格式化无符号八进制数
  • %x
    • 格式化无符号十六进制数
  • %X
    • 格式化无符号十六进制数(大写)
  • %f
    • 格式化浮点数字,可指定小数点后的精度
  • %e
    • 用科学计数法格式化浮点数
  • %E
    • 作用同 %e,用科学计数法格式化浮点数
  • %g
    • %f%e 的简写
  • %G
    • %F%E 的简写
  • %p
    • 用十六进制数格式化变量的地址

1.3. 格式化操作符辅助指令

  • *
    • 定义宽度或者小数点精度
  • -
    • 用做左对齐
  • +
    • 在正数前面显示加号 ( + )
  • <sp>
    • 在正数前面显示空格
  • #
    • 在八进制数前面显示零 ('0'),在十六进制前面显示 '0x' 或者 '0X' (取决于用的是’x’还是’X’)
  • 0
    • 显示的数字前面填充 '0' 而不是默认的空格
  • %
    • '%%' 输出一个单一的 '%'
  • (var)
    • 映射变量(字典参数)
  • m.n.
    • m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

部分实例

a=5
print(10)
print("%d"%a)
print("%2d"%a)		#输出时按照2个空间大小输出,默认为右对齐
print("%-2d"%a)		#2个空间大小,因为d前面是-号,所以左对齐
print("%02d"%a)		#2个空间大小输出,不够的用0补齐
print("%-02d"%a)	#2个空间大小输出,不够的用0补齐,左对齐

2. 通过 format() 函数实现

2.1. 语法

新增的一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {}: 来代替以前的 %format 函数可以接受不限个参数,位置可以不按顺序。

2.2. 用法

2.2.1. 基本用法

  • 不设置参数
print("{} {}".format("hello", "world"))			# 不设置指定位置,按默认顺序
print("{0} {1}".format("hello", "world"))		# 设置指定位置
print("{1} {0} {1}".format("hello", "world"))	# 设置指定位置# 输出
# 'hello world'
# 'hello world'
# 'world hello world'
  • 设置参数
print("姓名:{name}, 年龄 {age}".format(name="Horace", age="20 years old"))# 输出
# 姓名:Horace, 年龄 20 years old
  • 传入对象
class AssignValue(object):def __init__(self, value):self.value = value
my_value = AssignValue(6)print('value 为: {0.value}'.format(my_value))  # "0" 是可选的# 输出
# value 为: 6

2.2.2. 数字格式化

  • 常见数字格式化
数字格式输出描述
3.1415926{:.2f}3.14保留小数点后两位
3.1415926{:+.2f}+3.14带符号保留小数点后两位
-1{:-.2f}-1.00带符号保留小数点后两位
2.71828{:.0f}3不带小数
5{:0>2d}05数字补零(填充左边, 宽度为 2)
5{:x<4d}5xxx数字补 x(填充右边, 宽度为 4)
1000000{:,}1,000,000以逗号分隔的数字格式
0.25{:.2%}25.00%百分比格式
1000000000{:.2e}1.00e+09指数记数法
13{:>10d}…13右对齐(默认,宽度为 10,表格默认居中,用 ‘.’ 代表空格)
13{:<10d}13…左对齐(宽度为 10,表格默认居中,用 ‘.’ 代表空格)
13{:^10d}…13…中间对齐(宽度为 10,表格默认居中,用 ‘.’ 代表空格)
  • 结合进制的数字格式化
    • '{:b}'.format(11)
    • '{:d}'.format(11)
    • '{:o}'.format(11)
    • '{:x}'.format(11)
    • '{:#x}'.format(11)
    • '{:#X}'.format(11)
  • 总结
    • ^, <, > 分别是居中、左对齐、右对齐,后面带宽度
    • : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充
    • + 表示在正数前显示 +,负数前显示 -
    • (空格)表示在正数前加空格
    • bdox 分别是二进制、十进制、八进制、十六进制

http://www.ppmy.cn/news/12488.html

相关文章

走近软件生态系统

生态系统&#xff08;Ecosystem&#xff09;原本是一个生物学术语&#xff0c;意思是由一些生命体相互依存、相互制约而形成的大系统&#xff0c;就像我们学生时代在生物学课堂上学到的那样。隐喻无处不在&#xff0c;人们把这个术语移植到了 IT 领域中来&#xff0c;比如我们常…

【阶段四】Python深度学习09篇:深度学习项目实战:循环神经网络处理时序数据项目实战:CNN和RNN组合模型

本篇的思维导图: 项目背景 时间序列数据集中的所有数据都伴随着一个时戳,比如股票、天气数据。这个数据集,是科学家们多年间用开普勒天文望远镜观察并记录下来的银河系中的一些恒星的亮度。广袤的宇宙,浩瀚的星空在过去很长一段时间里,人类是没有办法证明系外行星…

【Linux系统】第四篇:Linux中编辑器vim的使用

文章目录一、vim的介绍1、vim的基本模式2、vim的使用二、命令模式1、光标移动操作2、文本复制、粘贴、剪切、撤销操作3、文本编辑相关操作三、插入模式四、底行模式底行模式命令集五、vim的配置原理六、sudo无法提权问题一、vim的介绍 vim是Linux下的一款多模式编辑器。 注意…

U-Boot 之零 源码文件、启动阶段(TPL、SPL)、FALCON、设备树

最近&#xff0c;工作重心要从裸机开发转移到嵌入式 Linux 系统开发&#xff0c;在之前的博文 Linux 之八 完整嵌入式 Linux 环境、&#xff08;交叉&#xff09;编译工具链、CPU 体系架构、嵌入式系统构建工具 中详细介绍了嵌入式 Linux 环境&#xff0c;接下来就是重点学习一…

C++ 简单实现RPC网络通讯

RPC是远程调用系统简称&#xff0c;它允许程序调用运行在另一台计算机上的过程&#xff0c;就像调用本地的过程一样。RPC 实现了网络编程的“过程调用”模型&#xff0c;让程序员可以像调用本地函数一样调用远程函数。最近在做的也是远程调用过程&#xff0c;所以通过重新梳理R…

迭代器模式

迭代器模式 1.迭代器模式基本介绍 迭代器模式&#xff08;Iterator Pattern&#xff09;是常用的设计模式&#xff0c;属于行为型模式 如果我们的集合元素是用不同的方式实现的&#xff0c;有数组&#xff0c;还有 java 的集合类&#xff0c;或者还有其他方式&#xff0c;当客…

【机器学习之模型融合】Voting投票法简单实践

目录 前言&#x1f49c; 1、使用sklearn实现投票法&#x1f494; 1.1、导入工具库&#xff0c;准备数据&#x1f495; 1.2、定义交叉验证评估函数&#x1f496; 1.3、建立基于交叉验证的benchmark、做模型选择&#x1f31f; 1.4、构建多组分类器、进行融合&#x1f4a5;…

【web安全】——文件上传漏洞

作者名&#xff1a;白昼安全主页面链接&#xff1a; 主页传送门创作初心&#xff1a; 舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座右铭…