格式化字符串
自学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、执行一次…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
