Python入门教程+项目实战-9.4节: 字符串的格式化

news2024/11/17 1:29:46

目录

9.4.1 理解格式化

9.4.2 使用f-string进行格式化

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

9.4.4 使用format方法进行格式化

9.4.5 知识要点

9.4.6 系统学习python


9.4.1 理解格式化

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

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

9.4.2 使用f-string进行格式化

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

代码实例:

Python

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

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

Python

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"

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

(1) 格式化基本语法

Python中常用的格式化符号:

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

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

Python

str % (argument,...)

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

代码实例:

Python

# __desc__ = 通过格式化符号以及%操作符对字符串进行格式化
 
# 现在开始答记者问
# 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元。
我理想中的恋爱女友是橘梨纱
"""

代码讲解:

(1) 格式化参数须与格式化符号的数目保持一致且与格式化符号表示的数据类型一致。

如果类型不一致,那么必须可以通过隐式转换的方式来进行类型匹配。

例如%d符号表示格式化整型类型,那么传递的参数为浮点类型或布尔类型时,参数会自动地转换为整型。

代码实例:

Python

# __desc__ = 字符串格式化时需要注意的地方
 
# 现在继续答记者问
# 1.你和你女朋友交往多久了?
answer = "我们已经交往了%d天了" % (20.1314)
 
# 2.为什么你的理想恋爱对象不是你女朋友?
# 某程序员由于过度紧张,导致多输出了个%d的格式符
answer = "%s %d" % ("俺瞎说的")
# Python抛出异常信息,格式化参数须与格式化符号数目一致
 
 
# 3.你和你女朋友打算什么时候结婚?
answer = "我们打算%d年结婚" % ("2022")
# Python抛出了异常信息,"2022"不能隐式地转换为整型

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

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

%m.n f

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

代码实例:

Python

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

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

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

代码实例:

Python

# __desc__ = 使用%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的输出为 "携手相伴,一生一世"

9.4.4 使用format方法进行格式化

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

(1) 位置占位符

(2) 关键词占位符

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

对于关键词占位符,需要在学完字典类型以后,再进行详细讲解。

关键词占位符的基本语法:

Python

"{index}".format(argument)

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

代码实例:

Python

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

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

代码讲解:

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

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

9.4.5 知识要点

(1) 字符串的格式化是指按照特定的格式对字符串进行输出。

(2) 对字符串进行格式化,有两种方式,一种是通过格式化符号,一种是通过字符串类型的format方法。

(3) 格式化参数须与格式化符号的数目保持一致且与格式化符号表示的数据类型一致。如果类型不一致,那么必须可以通过隐式转换的方式来进行类型匹配。

(4) 使用format方法进行格式化,主要有位置占位符和关键词占位符的方法

9.4.6 系统学习python

 薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。

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

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

相关文章

第10章_多线程

第10章_多线程 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 本章专题与脉络 我们之前学习的程序在没有跳转语句的情况下,都是由上至下沿着一条路径依次执行。现在想要设计一个程序…

Spring概述及IoC,DI的理解

目录 一、Spring 是什么? 1.1 什么是容器? 1.2 如何理解IoC? 1.3 理解Spring Ioc 1.4 DI是什么 1.5 回顾IoC,DI 1.6 IoC和DI的对比 一、Spring 是什么? 我们通常所说的 Spring 指的是 Spring Framework&#x…

不会写代码也能做自动化?推荐一款自动化测试神器

在软件测试这条道路上,大部分的职业技能发展道路都会是纯业务手工测试→自动化测试→性能测试→安全测试/测试开发。 但是却有着一部分人起初进入软件测试这一行看重的就是软件测试属于IT行业,门槛比较低,不需要代码基础。 这就导致了这一部…

数据库系列之MySQL线程ID和操作系统线程ID对应关系

在日常运维工作中,MySQL数据库服务器出现SQL语句执行导致服务器CPU使用率突增,如何通过现有手段快速定位排查到哪个SQL语句,并采取应急措施。本文介绍基于传统的操作系统线程的CPU使用监控手段入手,利用操作系统线程ID和MySQL线程…

Leetcode.1631 最小体力消耗路径

题目链接 Leetcode.1631 最小体力消耗路径 Rating : 1948 题目描述 你准备参加一场远足活动。给你一个二维 rows x columns的地图 heights,其中 heights[row][col]表示格子 (row,col)(row, col)(row,col) 的高度。一开始你在最左上角的格子 (0,0)(0, 0)…

8.Java面向对象---类、属性和方法

Java面向对象—类、属性和方法 在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等。而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类。同…

ActiveReportsJS 4.0 FIX ActiveReportsJS 4.0 Crack

JavaScript 报告工具是一组用于数据整合和可视化的 Web 组件。ActiveReportsJS 是前端开发人员用来在 Web 应用程序中嵌入报告的解决方案。报表设计器和查看器组件、强大的数据可视化器和丰富的 API 等主要功能使 ActiveReportsJS 成为行业领导者。 JavaScript 报告引擎 利用强…

【算法与数据结构】2 梅开二度,线性查找的究极优化

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于算法与数据结构体系专栏,本专栏对于0基础者极为友好,欢迎与我一起完成算法与数据结构的从0到1的跨越 线性查找的究极优化1.前言2.泛型1.1粗略介绍泛型类1.2使用泛型方法1…

Python 中如果键不存在,则将键添加到字典

文章目录使用 not in 检查键是否存在如果字典不存在则使用 dict.get() 添加键到字典如果字典不存在,则使用 setdefault() 将键添加到字典中使用 not in 检查键是否存在 如果字典不存在,则将键添加到字典中: 使用 not in 运算符检查键是否不…

如何用ChatGPT写文章?只需要这3步,10倍提升写作效率

随着技术的不断进步和创新,我们的生活方式和工作方式也在不断变化。在日常工作中,越来越多的人使用人工智能和机器学习等技术提高效率减少时间成本。最近ChatGPT火出圈了,很多人通过使用ChatGPT提高了工作效率。那么,在写作领域&a…

【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点 p269 -- Java Version

题目链接:https://leetcode.cn/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ 1. 题目介绍( 54. 二叉搜索树的第k大节点) 给定一棵二叉搜索树,请找出其中第 k 大的节点的值。 【测试用例】: 示例 1: 示例2&…

UTONMOS:打造你的梦想,开启元宇宙无限彩排的游戏时代

有人认为,元宇宙不过是 VR 概念的“旧瓶换新酒式”的炒作。 有人认为,元宇宙是被资本和巨头绑架的另一场“游戏”。 有人认为,元宇宙是骗局,是智商税。 更多人对元宇宙的评价是“呵呵”。 媒体朋友对元宇宙的描述更具艺术性&a…

详解FreeRTOS中的软件定时器

软件定时器用于让某个任务定时执行,或者周期性执行。比如设定某个时间后执行某个函数,或者每隔一段时间执行某个函数。由软件定时器执行的函数称为软件定时器的回调函数。 参考资料: 《Mastering the FreeRTOS™ Real Time Kernel》——Cha…

vue2、vue3使用i18n实现国际化

一、目标效果 源码地址:git clone i18n-demo: vue2、vue3实现i18n国际化功能 默认语言是中文: 点击语言切换,变成英文(这里简单设置了中文、英文两种语言) 注意:vue2支持 vue-i18n 版本8.0 ,vu…

本轮沙尘已跨过长江!这些地区请注意加强防范

气象台4月12日06时继续发布沙尘暴蓝色预警:受冷空气大风影响,预计4月12日08时至13日08时,新疆南疆盆地和东部、内蒙古中西部、甘肃河西和中部、宁夏、陕西中部、山西、河北、辽宁、北京、天津、山东、河南、安徽、江苏、上海、湖北中北部、浙…

漏洞利用之弱口令

漏洞利用之弱口令1.弱口令的定义2.弱口令字典生成收集用户信息,组成爆破字典特殊字符增强的字典生成字典生成项目3.利用 Burp Suite 进行密码爆破1.弱口令的定义 弱口令没有严格和准确的定义,通常认为容易被别人猜测到或被破解工具破解的口令均为弱口令…

【Mysql】mysql8.0.26解压包部署方式

版本背景: 操作系统:centos7.3 mysql版本:mysql-8.0.26-linux-glibc2.12-x86_64.tar 一、前期准备 1、检测操作系统自带安装的mysql和mariadb服务,如存在,需卸载 rpm -qa | grep mysql rpm -qa | grep mariadb 卸载…

vim编辑器使用

目录 vim基本概念 vim基本操作 插入模式 命令模式 移动光标 删除字符 复制剪切 替换 撤销 更改 移动指定行 底行模式 命令集 vim简单配置 vim基本概念 vim编辑器有三种模式: 命令模式:光标移动,字符或行移动&#x…

iTOP-RK3568开发板Android kernel移植-单独编译内核

此方法常用于 kernel 的开发和调试,以下的方法既编译 kernel 部分时, 同 时打包成 boot.img, 这样加快了我们开发的速度; 进入内核目录下, 输入以下命令: cd kernel make ARCHarm64 CC../prebuilts/cla…

Vue:axios

1、 第三方库方式, 基于 Promise 的 HTTP 库:axios (对 XMLHttpRequest进行的封装) 即: axios.get().then() 2、跨域访问 定义:在 a 页面中想获取 b 页面中的资源,如果 a 页面和 b 页面所处的协…