格式化字符串
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
格式化字符串是指先制定一个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记(也称为占位符),而这些符号还不会显示出来。在Python中,格式化字符串有以下两种方法:
(1)使用“%”操作符
在Python中,要实现格式化字符串,可以使用“%”操作符,语法格式如下:
'%[-][+][0][m][.n]格式化字符'%exp
参数说明:
l -:可选参数,用于指定左对齐,正数前方无符号,负数前面加负号。
l +:可选参数,用于指定右对齐,正数前方加正号,负数前方加负号。
l 0:可选参数,表示右对齐,正数前方无符号,负数前方加负号,用0填充空白处(一般与m参数一起使用)。
l m:可选参数,表示占有宽度。
l .n:可选参数,表示小数点后保留的位数。
l 格式化字符:用于指定类型,其值如表1所示。
表1 常用的格式化字符
| 格式化字符 | 说 明 | 格式化字符 | 说 明 |
| %s | 字符串(采用str()显示) | %r | 字符串(采用repr()显示) |
| %c | 单个字符 | %o | 八进制整数 |
| %d或者%i | 十进制整数 | %e | 指数(基底写为e) |
| %x | 十六进制整数 | %E | 指数(基底写为E) |
| %f或者%F | 浮点数 | %% | 字符% |
l exp:要转换的项。如果要指定的项有多个,需要通过元组的形式进行指定,但不能使用列表。
例如,格式化输出一个保存公司信息的字符串,代码如下:
template = '编号:%09d\t公司名称: %s \t官网: http://www.%s.com' # 定义模板
context1 = (7,'百度','baidu') # 定义要转换的内容1
context2 = (8,'明日学院','mingrisoft') # 定义要转换的内容2
print(template%context1) # 格式化输出
print(template%context2) # 格式化输出
上面的代码运行后将显示如图17所示的效果,即按照指定模板格式输出两条公司信息。

图17 格式化输出公司信息
说明:由于使用%操作符是早期Python中提供的方法,自从Python 2.6版本开始,字符串对象提供了format()方法对字符串进行格式化。现在一些Python社区也推荐使用这种方法。所以建议大家重点学习format()方法的使用。
(2)使用字符串对象的format()方法
字符串对象提供了format()方法用于进行字符串格式化,语法格式如下:
str.format(args)
参数说明:
l str:用于指定字符串的显示样式(即模板)。
l args:用于指定要转换的项,如果有多项,则用逗号进行分隔。
下面重点介绍创建模板。在创建模板时,需要使用“{}”和“:”指定占位符,语法格式如下:
{[index][:[[fill]align][sign][#][width][.precision][type]]}
参数说明:
l index:可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始。如果省略,则根据值的先后顺序自动分配。
l fill:可选参数,用于指定空白处填充的字符。
l align:可选参数,用于指定对齐方式(值为“<”时表示内容左对齐;值为“>”时表示内容右对齐;值为“=”时表示内容右对齐,只对数字类型有效,即将数字放在填充字符的最右侧,值为“^”时表示内容居中),需要配合width一起使用。
l sign:可选参数,用于指定有无符号数(值为“+”表示正数加正号,负数加负号;值为“-”表示正数不变;负数加负号,值为空格表示正数加空格,负数加负号)。
l #:可选参数,对于二进制数、八进制数和十六进制数,如果加上#,表示会显示0b/0o/0x前缀,否则不显示前缀。
l width:可选参数,用于指定所占宽度。
l .precision:可选参数,用于指定保留的小数位数。
l type:可选参数,用于指定类型。
format()方法中常用的格式化字符如表2所示。
表2 format()方法中常用的格式化字符
| 格式化字符 | 说 明 | 格式化字符 | 说 明 |
| s | 对字符串类型格式化 | b | 将十进制整数自动转换成二进制表示再格式化 |
| d | 十进制整数 | o | 将十进制整数自动转换成八进制表示再格式化 |
| c | 将十进制整数自动转换成对应的Unicode字符 | x或者X | 将十进制整数自动转换成十六进制表示再格式化 |
| e或者E | 转换为科学计数法表示再格式化 | f或者F | 转换为浮点数(默认小数点后保留6位)再格式化 |
| g或者G | 自动在e和f或者E和F中切换 | % | 显示百分比(默认显示小数点后6位) |
说明:当一个模板中,出现多个占位符时,指定索引位置的规范需统一,即全部采用手动指定,或者全部采用自动。例如,定义“'我是数值:{:d},我是字符串:{1:s}'”模板是错误的。会抛出如图18所示的异常。

图18 字段规范不统一抛出的异常
例如,定义一个保存公司信息的字符串模板,然后应用该模板输出不同公司的信息,代码如下:
template = '编号:{:0>9s}\t公司名称: {:s} \t官网: http://www.{:s}.com' # 定义模板
context1 = template.format('7','百度','baidu') # 转换内容1
context2 = template.format('8','明日学院','mingrisoft') # 转换内容2
print(context1) # 输出格式化后的字符串
print(context2) # 输出格式化后的字符串
上面的代码运行后将显示如图19所示的效果,即按照指定模板格式输出两条公司信息。

图19 格式化输出公司信息
在实际开发中,数值类型有多种显示方式,比如货币形式、百分比形式等,使用format()方法可以将数值格式化为不同的形式。下面通过一个具体的实例进行说明。
![]()
实例06 格式化不同的数值类型数据
在IDLE中创建一个名称为formatnum.py的文件,然后在该文件中将不同类型的数据进行格式化并输出,代码如下:
import math # 导入Python的数学模块
# 以货币形式显示
print('1251+3950的结果是(以货币形式显示):¥{:,.2f}元'.format(1251+3950))
print('{0:.1f}用科学计数法表示:{0:E}'.format(120000.1)) # 用科学计数法表示
print('π取5位小数:{:.5f}'.format(math.pi)) # 输出小数点后五位
print('{0:d}的16进制结果是:{0:#x}'.format(100)) # 输出十六进制数
# 输出百分比,并且不带小数
print('天才是由 {:.0%} 的灵感,加上 {:.0%} 的汗水 。'.format(0.01,0.99))
运行实例,将显示如图20所示的结果。

图20 格式化不同的数值类型数据

相关文章:
格式化字符串
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 格式化字符串是指先制定一个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记…...
错误信息:Traceback (most recent call last):
错误信息 Traceback (most recent call last): File "E:\python.learning\pythonDateExcavateTreat\数据挖掘课程设计\2_京东用户意向购买数据探索.py", line 74, in <module> df_ui df_ui.to_frame().reset_index() File "E:\python.learning\lib\site-…...
Thinkphp3.2.3网站后台不能访问如何修复
我是使用Thinkphp3.2.3新搭建的PHP网站,但是网站前台可以访问,后台访问出现如图错误: 由于我使用的Hostease的Linux虚拟主机产品默认带普通用户权限的cPanel面板,对于上述出现的问题不清楚如何处理,因此联系Hostease的…...
Golang 如何使用 gorm 存取带有 emoji 表情的数据
Golang 如何使用 gorm 存取带有 emoji 表情的数据 结论:在 mysql 中尽量使用 utf8mb4,不要使用 utf8。db报错信息:Error 1366 (HY000): Incorrect string value: \\xE6\\x8C\\xA5\\xE7\\xAC\\xA6...根本原因:emoji 4个字节&#x…...
计算机算法中的数字表示法——原码、反码、补码
目录 1.前言2.研究数字表示法的意义3.数字表示法3.1 无符号整数3.2 有符号数值3.3 二进制补码(Twos Complement, 2C)3.4 二进制反码(也称作 1 的补码, Ones Complement, 1C)3.5 减 1 表示法(Diminished one System, D1)3.6 原码、反码、补码总结 1.前言 昨天有粉丝让我讲解下定…...
BGP策略实验
一、实验要求 二、实验分析 1.先配置IP 2.再配置BGP 3.配置BGP策略 三、实验过程 要求 1. [r4]ip ip-prefix aa permit 192.168.10.0 24 [r4]route-policy aa permit node 10 [r4-route-policy]if-match ip-prefix aa [r4-route-policy]apply preferred-value 100 [r4]rout…...
目标检测 | R-CNN、Fast R-CNN与Faster R-CNN理论讲解
☀️教程:霹雳吧啦Wz ☀️链接:https://www.bilibili.com/video/BV1af4y1m7iL?p1&vd_sourcec7e390079ff3e10b79e23fb333bea49d 一、R-CNN R-CNN(Region with CNN feature)是由Ross Girshick在2014年提出的,在PAS…...
【busybox记录】【shell指令】mkdir
目录 内容来源: 【GUN】【mkdir】指令介绍 【busybox】【mkdir】指令介绍 【linux】【mkdir】指令介绍 使用示例: 创建文件夹 - 默认 创建文件夹 - 创建的同时指定文件权限 创建文件夹 - 指定多级文件路径,如果路径不存在,…...
SQL刷题笔记day6-1
1从不订购的客户 分析:从不订购,就是购买订单没有记录,not in 我的代码: select c.name as Customers from Customers c where c.id not in (select o.customerId from Orders o) 2 部门工资最高的员工 分析:每个部…...
KITTI数据中pose含义
Folder ‘poses’: The folder ‘poses’ contains the ground truth poses (trajectory) for the first 11 sequences. This information can be used for training/tuning your method. Each file xx.txt contains a N x 12 table, where N is the number of frames of this …...
C++模拟实现stack和queue
1 stack 1.1概念 stl栈 1.2栈概念 1.3代码 2 queue 2.1概念 stl队列 2.2队列概念 2.3代码...
awtk踩坑记录一:awtk-web build.py编译过程笔记
工作需求,接触了awtk, 要求把界面部署到web上,期间因为各种编译问题卡的半死,提了不少issue, 经过几天补课,把项目的编译结构给摸了一遍,做个记录,也希望能帮到有同样问题的朋友。 之前python只是略接触过…...
docker容器中解决中文乱码
1. 找到dockerfile文件 2. 编辑Dockerfile 添加 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 3. 生成新的镜像文件 FROM java17_yinpeng:latest MAINTAINER YP <2064676101QQ.COM> ADD jiquan_online_chat.jar jiquan_online_chat #CM…...
Javascript 位运算符(,|,^,<<,>>,>>>)
文章目录 一、什么是位运算?二、如何使用1. 位与(AND):&用途(1)数据清零(2)判断奇偶 2. 位或(OR):|用途(1)向下取整 3…...
Golang项目代码组织架构实践
Golang在项目结构上没有强制性规范,虽然这给了开发者很大的自由度,但也需要自己沉淀一套可行的架构。本文介绍了一种项目布局,可以以此为参考设计适合自己的 Golang 项目组织模式。原文: Golang Project Layout Go 有很多强制的或是约定俗成的…...
网工内推 | 国企信息安全工程师,CISP认证优先
01 浙江省公众信息产业有限公司 🔷招聘岗位:安全运营工程师 🔷职责描述: 1. 负责公司内部安全运营平台及其子系统的安全事件管理、事件发现分析、应急响应和系统维护等; 2. 负责风险和漏洞管理,包括漏洞预…...
RAG 高级应用:基于 Nougat、HTML 转换与 GPT-4o 解析复杂 PDF 内嵌表格
一、前言 RAG(检索增强生成)应用最具挑战性的方面之一是如何处理复杂文档的内容,例如 PDF 文档中的图像和表格,因为这些内容不像传统文本那样容易解析和检索。前面我们有介绍过如何使用 LlamaIndex 提供的 LlamaParse 技术解析复…...
《TCP/IP网络编程》(第十二章)I/O复用(2)
下面是基于I/O复用的回声服务器端和客户端代码 1.Linux系统 服务器端代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> // POSIX标准定义的通用函数,如close() #include <arpa/inet.h> //…...
AI企业需要“联盟营销”?一文带你探索AI企业营销新玩法!
为什么联盟营销对AI业务有较大优势 联盟营销在电商领域、saas领域与其他产品领域同样有效。在AI业务中,它有效的原因与其他领域大不相同。 高好奇心和试用率 AI领域是创新的热点。它吸引了一群渴望探索和尝试每一项新技术的人群。这种蓬勃的好奇心为聪明的AI企业提…...
你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解
目录 一、onMounted的前世今生 1.1、onMounted是什么 1.2、onMounted在vue2中的前身 1.2.1、vue2中的onMounted 1.2.2、Vue2与Vue3的onMounted对比 1.3、vue3中onMounted的用法 1.3.1、基础用法 1.3.2、顺序执行异步操作 1.3.3、并行执行多个异步操作 1.3.4、执行一次…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
C# WPF 左右布局实现学习笔记(1)
开发流程视频: https://www.youtube.com/watch?vCkHyDYeImjY&ab_channelC%23DesignPro Git源码: GitHub - CSharpDesignPro/Page-Navigation-using-MVVM: WPF - Page Navigation using MVVM 1. 新建工程 新建WPF应用(.NET Framework) 2.…...
npm安装electron下载太慢,导致报错
npm安装electron下载太慢,导致报错 背景 想学习electron框架做个桌面应用,卡在了安装依赖(无语了)。。。一开始以为node版本或者npm版本太低问题,调整版本后还是报错。偶尔执行install命令后,可以开始下载…...
用 FFmpeg 实现 RTMP 推流直播
RTMP(Real-Time Messaging Protocol) 是直播行业中常用的传输协议。 一般来说,直播服务商会给你: ✅ 一个 RTMP 推流地址(你推视频上去) ✅ 一个 HLS 或 FLV 拉流地址(观众观看用)…...
