【Python】 字符串格式

今天的目标

输出字符串的场景有很多,所以来了解一下生成字符串的各种方式。

字符串生成

字符串连接

到目前为止,可能已经在代码中多次看到字符串连接,但再次看一下。

python 复制代码
'ap' 'ple' 
'ap' + 'ple'
python 复制代码
'apple'
'apple'

如上所示,可以使用或不使用 + 运算符来连接字符串。

format方法

通过使用格式方法,只需更改格式方法的参数即可更改输出结果。

python 复制代码
'My favorit fruits are {0} and {1}'.format('apple', 'peach')
python 复制代码
'My favorit fruits are apple and peach'

如上所示,如果用 {} 包围索引并将其嵌入到字符串中,则该字符串将与 format 方法的参数索引一起输出。

因此,如果更改如下指定的索引,将得到相应的输出结果。

python 复制代码
'My favorit fruits are {1} and {0}'.format('apple', 'peach')
python 复制代码
'My favorit fruits are peach and apple'

format 方法还支持关键字参数和字典。

python 复制代码
#关键字参数
'My favorit fruits are {fruit1} and {fruit2}'.format(fruit1='apple', fruit2='peach')
python 复制代码
'My favorit fruits are apple and peach'
python 复制代码
字典
basket = {'fruit1':'apple', 'fruit2':'peach'}
'My favorit fruits are {0[fruit1]} and {0[fruit2]}'.format(basket)
python 复制代码
'My favorit fruits are apple and peach'

使用字典时,可以将其解包以简化指定方法。

python 复制代码
字典
basket = {'fruit1':'apple', 'fruit2':'peach'}
'My favorit fruits are {fruit1} and {fruit2}'.format(**basket)
python 复制代码
'My favorit fruits are apple and peach'

它还可用于格式化数字。 对于数值,可以指定要显示的小数位数,如下所示。

python 复制代码
score = 98.75
'My score is {0:.1f}'.format(score)
python 复制代码
'My score is 98.8'

与之前一样,{0:.1f} 中的 0 指定参数的索引。 .1f表示显示多少位小数,f代表浮点float。

在本规范中,您可以看到该数字四舍五入到小数点后第二位。

后记

f-strings表示法

文章发表后,评论里告诉我这是一个非常强大的符号,所以我想介绍给大家!

这是一种称为 f-strings或格式化字符串文字的表示法。

上面使用了format方法来替换占位符,但是使用 f-string 表示法允许直接嵌入变量。

该表示法是通过在要定义的字符串的开头添加 f 或 F 来定义的。

*由于Python 3.6或更高版本支持,请注意执行环境。

python 复制代码
str1 = 'apple'
str2 = 'peach'

f'My favorit fruits are {str1} and {str2}'
python 复制代码
'My favorit fruits are apple and peach'
python 复制代码
score = 98.75

f'My score is {score:.1f}'
python 复制代码
'My score is 98.8'
相关推荐
顾林海10 小时前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱13 小时前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽17 小时前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码18 小时前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱1 天前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵1 天前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio1 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户0332126663671 天前
使用 Python 从零创建 Word 文档
python
Csvn2 天前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽2 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate