Python从入门到高手6.4节-字符串格式化详解

news2025/1/12 15:58:56

目录

6.4.1 理解格式化

6.4.2 使用f-string进行格式化

6.4.3 使用格式化符号进行格式化

6.4.4 使用format方法进行格式化

6.4.5 上山打老虎


6.4.1 理解格式化

同学们比较熟悉的是磁盘格式化,将磁盘格式化以后,磁盘中的文件全部被清除。那么,什么是字符串的格式化?对字符串进行格式化,不会清除字符串中的字符。字符串的格式化是指按照特定的格式对字符串进行输出。

image.png

举个简单的例子,在字符串"{1}{2}{3}"中, 在{1}位置处输出为整数,{2}位置处输出为字符串,{3}位置处输出为浮点数,那么格式化后的字符串输出为:"整数字符串浮点数"。在Python中对字符串进行格式化,主要有三种方式: 一种是通过f-string来进行格式化,一种是使用格式化符号配合操作符%进行格式化,最后一种则是通过字符串的format方法进行格式化。

6.4.2 使用f-string进行格式化

f-string是Python3.6版本后引入的格式化方法,这种格式化方法语法简单,易于使用,是笔者在开发Python程序时最常用的格式化方法, 薯条老师也建议大家使用这种最新的格式化方法。在学习f-string的格式化方法前,我们先来掌握f-string的基本概念: 所谓f-string,是指在字符串的引号前面带一个f的前缀。

代码实例:

"""
@author: 大神薯条老师
@desc: fstring
"""

# 普通的字符串
name = "薯条老师"
# f-string
author = f"薯条老师"

使用f-string进行格式化非常简单,在字符串中使用{}来输出表达式的值,即可实现格式化:

"""
@author: 大神薯条老师
@desc: f-string格式化的简单例子
"""

author = "薯条老师"
# Python在扫描f-string时会先输出{}中的表达式的值
content = f"跟{author}学Python" # content为跟薯条老师学Python

x,y = 1, 2
# Python在扫描f-string时会先计算{}中的表达式的值,然后进行文本替换
value = f"x+y的值等于{x+y}"  # value为"x+y的值等于3"

对于f-string,Python还提供了其它更多复杂的格式化操作,由于在工作中并不常用,所以不再赘述。对此感兴趣的读者可以查阅Python官方文档。

6.4.3 使用格式化符号进行格式化

(1) 格式化基本语法

Python中常用的格式化符号:

image.png

更多的格式化符号,同学们可以查阅Python官方文档,同学们在初学Python时,只需掌握核心概念以及学习方法,在理解基本原理和基本操作之后再进行进一步地学习。

在Python中使用格式化符号配合%操作符来对字符串进行格式化,对字符串进行格式化,返回一个特定格式的字符串。字符串格式化语法为:

str % (argument,...)

字符串str中包含相应的格式化符号,括号里面的格式化参数须与格式化符号一一对应。格式化语法中的括号()不是必须的。

代码实例

# 现在开始答记者问
# 1.你学习Python有多久了?
answer = "我学习Python有%d天了" % (5)
# answer的输出为"我学习Python有5天了"
 
 
# 2.谈了女朋友以后,你银行卡里还剩多少钱?
answer = "我银行卡里还剩%f元" % (20.1314)
# answer的输出为"我银行卡里还剩20.1314元"
 
 
# 3.你理想中的恋爱女友是谁?
answer = "我理想中的恋爱女友是%s" % ("玛丽亚")
# answer的输出为"我理想中的恋爱女友是玛丽亚"  ...oh,no!
 
 
# 4.现在对你的回答进行总结,可以吗?
answer = """好的。我学习Python有%d天了。
谈女朋友以后,我的银行卡里只剩%f元。
我理想中的恋爱女友是%s。
""" % (5, 20.1314,"玛丽亚")
 
""" 
answer的输出为:
好的。我学习Python有5天了。
谈女朋友以后,我的银行卡里只剩20.1314元。
我理想中的恋爱女友是玛丽亚

 (2) 指定浮点类型的精度

在进行字符串格式化时,可以指定浮点小数的精度。格式化符号写法:

%m.n f

m指的是显示的最少总宽度,总宽度包含后面的小数点,如果格式化内容的宽度不足m位,则会在格式化输出中补空格。n指的是小数点后面显示的位数,小数点后的位数大于n时会进行四舍五入。

代码实例:

# 记者突然化身小学数学老师,在婚礼中进行捣乱
 
"""
恭喜你程序员,在单身N年后,你终于迈入婚姻的殿堂。
就在今天,你的两只脚已经踏入爱情的坟墓。
那么,我最后再问你最后一个问题。
......
......
你知道圆周率的值是多少吗?
"""
 
answer = "%12.10f" % (3.1415926535)
# 程序员不假思索地回答出圆周率的值,然后将数学老师轰出了酒店

(3) 特殊格式化符号:%s

在对字符串进行格式化操作时,如果格式化符号为%s,那么不论格式化参数是什么数据类型,都会格式化为字符串类型。

代码实例:

all_converted_to_string = "%s" 
 
love = all_converted_to_string % (1314)
# love的输出为 "1314"
 
all_converted_to_string % (20.1314)
# love的输出为 "20.1314"
 
all_converted_to_string % (True)
# love的输出为 "True"
 
all_converted_to_string % ("携手相伴,一生一世")
# love的输出为 "携手相伴,一生一世"

6.4.4 使用format方法进行格式化

使用字符串类型的format方法进行格式化时,主要有以下两种方法:

(1) 位置占位符

(2) 关键词占位符

所谓的位置占位符是指通过位置编号来指定格式化参数的输出位置,位置以{索引}的形式来进行指定。例如字符串"{0}{1}{2}"中,索引0对应的是format方法中的第一个参数,索引1对应的是format方法中的第二个参数,以此类推。关键词占位符的基本语法:

"{index}".format(argument)

待格式化字符串中的{}符号是必须的,index从0开始编号,用来指定format方法中参数的位置。{}中不指定位置时,自动按照format方法中的参数位置进行格式化。

代码实例:


# 定义oath变量,表示爱的誓言
oath = """{0},我将这个戒指给你,戴上我的喜乐与爱心。我选择你做我的妻子。
从今以后,无论是顺境或逆境,富足或贫穷,健康或疾病,我都将爱护你、珍惜你,直到天长地久。
 
{1},我将这个戒指给你,戴上我的喜乐与爱心。我选择你做我的丈夫。
从今以后,无论是顺境或逆境,富足或贫穷,健康或疾病,我都将爱护你、珍惜你,直到天长地久。
"""

# 执行format方法,对oath进行格式化
oath = oath.format("情投意合", "情比鹣鲽")

代码讲解:

(1) 在代码实例中,{0}对应的是format方法中的"如意新娘"参数,{1}对应的是format方法中的"如意郎君"参数。

(2) 在{}中不指定位置时,与format方法中的参数的顺序(从左到右的顺序)一一对应。

6.4.5 上山打老虎

跟薯条老师学后端开发,高级爬虫(JS逆向+安卓逆向),数据分析,大数据开发,量化交易,以及机器学习+深度学习算法。坚定自己的学习目标,保持学习的热情,那你成为高手只是时间问题。

薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。想系统学习Python和Java的同学,可以移步薯条老师的个人技术博客:薯条老师的个人技术博客http://www.chipscoco.com/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据湖新突破:Hudi让实时数据分析更高效!

开源数据湖对比 Hudi的使用收益 Hudi使用成效 Hudi内部机制 增量摄入与更新 Hudi使用一种混合日志存储模式(称为Copy-on-Write),可以同时处理基础数据文件(Parquet)和增量日志(HoodieLogFile)。以 MergeOnReadTable 的 upsert 操作为例,当有新数据到来时,Hudi会先将数据以行…

ubuntu 虚拟机将linux文件夹映射为windows网络位置

在使用虚拟机时可以选择将windows的文件夹设置为共享文件夹方便在虚拟机中访问windows中的文件,同理,也可以将linux的文件夹共享为一个网络文件夹,通过windows的添加一个网络位置功能,将linux的文件夹映射到windows本地,方便windows访问使用linux的文件夹 参照如下:https://blo…

CMA软件测评实验室如何申请|申请流程、筹备环节、材料清单、资源准备

CMA软件测评实验室资质的申请需要做好哪些准备工作?需要准备哪些材料?本文我们一起来梳理一下CMA软件测评实验室申请流程、准备环节、材料准备以及资源准备。 一、CMA软件测评实验室资质申请流程 1、申请资质认定的检验检测机构(以下简称申…

使用OpenRewrite将Java自动升级到Java 21

使用 OpenRewrite 可以实现将Java 项目自动升级到Java 21语法。 基于Maven项目的实现步骤 步骤非常简单&#xff0c; 具体如下&#xff1a; 在pom.xml 中添加如下插件&#xff1a; <project><build><plugins><plugin><groupId>org.openrewri…

第90届CMEF进行中,飞凌嵌入式引领智慧医疗新潮流

2024年10月12日&#xff0c;第90届中国国际医疗器械博览会 (CMEF)在深圳国际会展中心(宝安)开幕&#xff0c;来自全球各地的4000多家展商齐聚一堂&#xff0c;为全球健康产业带来探析前沿、洞见未来的医疗盛宴&#xff0c;飞凌嵌入式在13号馆D01展位隆重亮相。 飞凌嵌入式作为…

经典文献阅读之--GMMCalib(使用基于GMM的联合配准进行激光雷达传感器的外部标定)

0. 简介 现有的激光雷达标定框架主要使用迭代最近点(ICP)及其变体等非概率配准方法。由于它们的成对配准过程以及对初始化和参数化的敏感性&#xff0c;这些方法的结果存在偏差。这通常会导致校准过程中的不校准。概率配准方法通过专门模拟观测值的概率性质来弥补这些缺点。《…

上市公司社会责任报告信息数据(纳税金额、社会捐赠等) 2007-2023年

一、数据指标&#xff1a; 股票代码 统计截止日期 公告日期 所属省份 行业代码 行业名称 纳税总额 每股社会贡献值 社会捐赠额 是否经第三方机构审验 审验机构 是否参照GRI《可持续发展报告指南…

PostGIS:道路网密度分析

道路网密度是评价城市道路网是否合理的基本指标之一,用道路网密度指标来描述区域内的道路长度及平均分布情况,体现城市道路供给水平,其具有统计简单、直观、数据容易获取的优点。另外,通过对不同等级道路网密度的统计还能很好地反映出城市道路等级结构关系,对于方格形城市…

让Activity更加优雅地跳转

公众号「稀有猿诉」 原文链接 让Activity更加优雅地跳转 有过Android开发经验的小伙伴对startActivityForResult以及onActivityResult一定不陌生&#xff0c;正是这一对API让组件 的复用变成可能。今天就来学习一下如何在函数式的范式中驾驭Activity的跳转。 缘起 系…

git的基本操作 + 分支管理

一、基本操作 1. 修改文件 Git比其他的版本管理器设计得更加优秀&#xff0c;因为Git追踪并管理的是修改&#xff0c;而非文件。 修改一个文件&#xff0c;不管你是添加一行&#xff0c;或者删除一行&#xff0c;还是添加了又删除了&#xff0c;甚至你创建了一个新文件&…

《CS:GO》的标志性实验地图在 RTX GPU 神经网络中运行

研究人员让标志性的《CS:GO》地图《Dust 2》完全通过神经网络在单个 RTX 3090 GPU 上模拟运行。 虽然这些片段既令人印象深刻&#xff0c;又问题百出&#xff0c;但它们展示了生成式人工智能在模仿全 3D 游戏环境方面取得的令人敬佩的进展。 该项目的负责人之一埃洛伊-阿隆索&a…

了解CRM外贸管理软件及其应用指南

在全球化的商业环境中&#xff0c;外贸活动显得尤为重要&#xff0c;而有效地管理这些活动则成为企业取得成功的关键之一。CRM外贸管理软件作为一种专门针对外贸企业设计的客户关系管理工具&#xff0c;近年来受到越来越多国际贸易公司的青睐。其中&#xff0c;Zoho CRM作为市场…

Java项目:157 基于springboot技术的美食烹饪互动平台的设计与实现(含论文+说明文档)

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本知识管理系统有管理员和用户两个角色 管理员权限操作的功能包括管理美食&#xff0c;对美食留言进行回复&#xff0c;管理美食知识信息&…

【QAMISRA】解决导入commands.json时报错问题

1、 文档目标 解决导入commands.json时报错“Could not obtain system-wide includes and defines”的问题。 2、 问题场景 客户导入commands.json时报错“Could not obtain system-wide includes and defines”。 3、软硬件环境 1、软件版本&#xff1a; QA-MISRA23.04 2、…

9.7 栅格图层符号化轮廓渲染

9.7 栅格图层符号化轮廓渲染_栅格构建轮廓-CSDN博客 目录 前言 轮廓 QGis设置为轮廓 二次开发代码实现轮廓 总结 前言 介绍栅格图层数据渲染之轮廓渲染说明&#xff1a;文章中的示例代码均来自开源项目qgis_cpp_api_apps 轮廓 以“3420C_2010_327_RGB_LATLNG.tif”数据…

UE小:UE5的Pixelstreaming在捕获画面的时候没办法显示非Viewport的Slate区域按钮的ToolTip

原始代码 首先&#xff0c;让我们看看原始代码片段&#xff1a; // Some widgets might want to provide an alternative Tooltip Handler. if (bCanSpawnNewTooltip || !NewTooltip) {TSharedPtr<SWidget> NewTooltipWidget NewTooltip ? NewTooltip->AsWidget()…

【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024

近期&#xff0c;阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM&#xff08;ACM国际多媒体会议&#xff09;是国际多媒体领域的顶级会议&#xff0c;旨在为研究人员、工程师和行业专家提供一个交流平台&#xff0c;以展示在多媒体领域的…

lstm基础知识

lstm前言 LSTM(Long short-term memory)通过刻意的设计来避免长期依赖问题&#xff0c;是一种特殊的RNN。长时间记住信息实际上是 LSTM 的默认行为&#xff0c;而不是需要努力学习的东西&#xff01; 在标准的RNN中&#xff0c;这个重复模块具有非常简单的结构&#xff0c;例…

TikTok Shop菲律宾卖家突破200万,TikTok自动批量关注、点赞、留言和私信

TikTok Shop自进军菲律宾市场以来&#xff0c;积极推动“购物娱乐”的概念&#xff0c;迅速成为当地电商领域的一股重要力量。其GMV&#xff08;商品交易总额&#xff09;和销售额在菲律宾市场占据显著份额&#xff0c;显示出强大的市场影响力和增长潜力。 相关数据显示&#…