格式化字符串

自学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()方法可以将数值格式化为不同的形式。下面通过一个具体的实例进行说明。

图标 (35)

  实例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  格式化不同的数值类型数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/661456.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

opencv进阶 ——(七)图像处理之寸照换背景

寸照换背景&#xff0c;通常指的是将个人证件照片的背景色更换为另一种颜色&#xff0c;如白色、蓝色或红色等&#xff0c;以满足不同用途的要求。例如&#xff0c;护照照片通常要求白色背景&#xff0c;而身份证照片可能需要蓝色背景。这个过程通常涉及到图像处理技术&#xf…

人脸识别——探索戴口罩对人脸识别算法的影响

1. 概述 人脸识别是一种机器学习技术&#xff0c;广泛应用于各种领域&#xff0c;包括出入境管制、电子设备安全登录、社区监控、学校考勤管理、工作场所考勤管理和刑事调查。然而&#xff0c;当 COVID-19 引发全球大流行时&#xff0c;戴口罩就成了日常生活中的必需品。广泛使…

源码部署ELK

目录 资源列表 基础环境 关闭防护墙 关闭内核安全机制 修改主机名 添加hosts映射 一、部署elasticsearch 修改limit限制 部署elasticsearch 修改配置文件 单节点 集群(3台节点集群为例) 启动 二、部署logstash 部署logstash 添加配置文件 启动 三、部署kiban…

2024 五月份国内外CTF 散装re 部分wp

cr3CTF warmup 附件拖入ida main函数无法反汇编&#xff0c;仔细看&#xff0c;有花指令&#xff0c;jnz实际上必定跳转。有非常多处&#xff0c;可以写脚本patch程序去掉花指令&#xff0c;只要匹配指令&#xff0c;再获取跳转地址&#xff0c;nop掉中间的代码就行。但…

Paddle使用问题No module named ‘paddle.fluid’

这是Paddle版本的问题&#xff0c;从飞桨框架 2.5 版本开始&#xff0c;已经废弃了 paddle.fluid 。 ​解决方案&#xff1a;修改paddle版本 pip install paddlepaddle2.4.0

【微机原理及接口技术】可编程计数器/定时器8253

【微机原理及接口技术】可编程计数器/定时器8253 文章目录 【微机原理及接口技术】可编程计数器/定时器8253前言一、8253的内部结构和引脚二、8253的工作方式三、8253的编程总结 前言 本篇文章就8253芯片展开&#xff0c;详细介绍8253的内部结构和引脚&#xff0c;8253的工作方…

sqlserver查询(三)——group by 与 having的使用

目录 10. group by(分组) 11. having(对分组后的信息过滤) 可能从这里开始&#xff0c;执行顺序越来越显得重要了&#xff01;&#xff01;&#xff01; 10. group by(分组) 这个查询相比前面会有一些困难&#xff1b; 格式&#xff1a;group by 字段的集合&#xff1b; 功…

正邦科技(day2)

自动校准 问题&#xff1a;电量不准都可以直接去校准 校准方式&#xff1a;可程式变频电压 问题分析&#xff1a;他是通过软件去自动自动校准的&#xff0c;flash 清空的时候有缓存没有清空&#xff0c;或者互感器没有读取到问题 互感器&#xff1a;电流互感器的作用包括电流测…

景源畅信:抖音小店如何开橱窗?

在当今数字化时代&#xff0c;社交媒体平台不仅仅是人们交流和分享生活的工具&#xff0c;更成为了商家们展示和销售产品的重要场所。抖音作为一款流行的短视频社交应用&#xff0c;其内置的电商功能——抖音小店&#xff0c;为众多商家和个人提供了便捷的在线销售途径。其中&a…

Spring-注解

Spring 注解分类 Spring 注解驱动模型 Spring 元注解 Documented Retention() Target() // 可以继承相关的属性 Inherited Repeatable()Spirng 模式注解 ComponentScan 原理 ClassPathScanningCandidateComponentProvider#findCandidateComponents public Set<BeanDefin…

基于python flask的旅游数据大屏实现,有爬虫有数据库

背景 随着旅游行业的快速发展&#xff0c;数据在旅游决策和规划中的重要性日益凸显。基于 Python Flask 的旅游数据大屏实现研究旨在结合爬虫技术和数据库存储&#xff0c;为用户提供全面、实时的旅游信息展示平台。 爬虫技术作为数据采集的重要手段&#xff0c;能够从各种网…

使用Java Swing制作一个飞翔的小鸟游戏

文章目录 一、需求分析二、技术介绍2.1相关技术2.2开发环境 三、功能实现1、开始2、运动3、死亡 四、部分代码实现获取源码 文章最下方获取源码&#xff01;&#xff01;&#xff01; 文章最下方获取源码&#xff01;&#xff01;&#xff01; 文章最下方获取源码&#xff01;&…

【PB案例学习笔记】-13 徒手做个电子时钟

写在前面 这是PB案例学习笔记系列文章的第11篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

【C++】---二叉搜索树

【C】---二叉搜索树 一、二叉搜索树概念二、二叉搜索树操作&#xff08;非递归&#xff09;1.二叉搜索树的查找 &#xff08;非递归&#xff09;&#xff08;1&#xff09;查找&#xff08;2&#xff09;中序遍历 2.二叉搜索树的插入&#xff08;非递归&#xff09;3.二叉搜索树…

单链表经典算法题理解

目录 1. 前言&#xff1a; 2. 移除链表元素 3. 反转链表 4. 合并两个有序链表 5. 链表的中间节点 6. 环形链表的约瑟夫问题 7. 分割链表 1. 前言&#xff1a; 当我们学习了单链表之后&#xff0c;我能可以尝试的刷一下题了&#xff0c;以下分享一下几道题的解法 2. 移…

【几何】输入0-360度任意的角度,求上面直线与椭圆相切点的坐标计算公式

输入0-360度任意的角度,求上面直线与椭圆相切点的坐标计算公式 使用积分计算 使用到的公式有椭圆公式: x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2}+\frac{y^2}{b^2} = 1 a2x2​+b2y2​=1 平面旋转公式 X r = cos ⁡ θ ∗ ( X s − X O ) − sin ⁡ θ ∗ ( Y s − Y O ) + X …

XDebug配置极简教程,phpstorm实现http请求断点调试

写这篇的文章的初衷:网络上配置XDebug的文章有很多,XDebug也有官方的文档, PhpStorm也有官方的文档,为什么还要写那? 相信不少人,都有一种感觉,虽然教程很多,但是按教程走一遍,自己的确不能正常调试。 问题出在下面几个方面: 1. 对调试过程中,没有一定的认识,因此…

【UML用户指南】-02-UML的14种图

1、结构图 1、类图&#xff08;class diagram&#xff09; 展现了一组类、接口、协作和它们之间的关系。 在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。 包含主动类的类图给出系统的静态进程视图。构件图是类图的变体。 2、对象图&a…

一种基于高德Web API实现沿路画面的实现

概述 本文在mapboxGL框架下&#xff0c;分享一种基于高德Web API实现沿路画面的实现。 实现效果 实现 1. 实现思路 通过点击获取路径的起点和终点&#xff1b;将多次规划路径的结果连成一条线&#xff1b;当鼠标点击回到第一个点的时候结束绘制&#xff1b;绘制结束后将路径…

Tasker+SendSilentMail实现钉钉自动打卡

Tasker 允许用户根据自定义的“配置文件”(Profiles)&#xff0c;在特定的“背景”(Contexts)下&#xff0c;执行指定的“任务”(Tasks)。以下是关于Tasker的详细介绍&#xff1a; 强大的自定义能力&#xff1a;用户可以根据自己的需求&#xff0c;创建各种配置文件和任务&…