Python字符串拼接的4种方法实例

山海之间
山海之间
发布时间:2026-10-15| 6人浏览过
原创

本文详细介绍Python中四种字符串拼接方式:算术运算符(+、*)、format方法、百分号操作符及f-string。涵盖类型转换规则、参数匹配限制及常见错误处理,并附字符串去空格方法总结,帮助开发者高效处理文本操作。

在实际编程场景中,字符串拼接是高频操作。本文将深入解析Python语言中实现的四种主流字符串拼接方式。

1. 算术运算符拼接

Python内置七种算术运算符,包括加、减、乘、除、整除、幂和取模。其中加号(+)和星号(*)具备字符串拼接功能。

(1)加号算术运算符

加号在Python中既用于数学运算,也可用于字符串连接。具体数学计算示例如下:

num1 = 1
num2 = 2
print(num1 + num2) # 3

该运算符同样适用于字符串拼接场景:

s1 = '我是'
s2 = '大帅比'
print(s1 + s2) # 我是大帅比

需注意,使用加号进行字符串拼接时,操作数必须均为字符串类型。若尝试与整型(int)、浮点型(float)或布尔型(bool)直接拼接,程序将抛出类型错误。

(2)星号算术运算符

若需生成重复字符序列,可使用星号(*)简化操作,例如:

s1 = '-'
print(s1 * 30)
# ------------------------------
print(s1 * True)
# -
print(s1 * False)
# (虽然没有显示,但实际上有输出一个空字符串)

与加号类似,星号在字符串拼接中也存在类型限制。它不能直接混合字符串与浮点型数据;对于布尔型,Python会将其隐式转换为整型(True转为1,False转为0)后再进行拼接计算。

2、format方法

Python字符串对象提供了format方法。通过在字符串中预留占位符(即大括号{}),并在调用format时按顺序传入参数,即可实现字符串拼接。

s1 = '小明'
s2 = 18
s3 = 1.75
s4 = True
print('{}今年{}岁了,身高{}米,是个成年的{}男人。'.format(s1, s2, s3, s4))
# 小明今年18岁了,身高1.75米,是个成年的True男人。

format方法支持拼接字符串、整型、浮点型及布尔型数据。其中,布尔值在拼接前会默认转换为字符串类型(如True变为"True")。关键点在于:format的参数数量必须与占位符数量严格匹配,占位符不能多于参数,但参数也不能少于占位符,否则将引发索引越界错误。

s1 = '小明'
s2 = 18
s3 = 1.75
s4 = True
print('{}今年{}岁了,身高{}米,是个成年的男人。'.format(s1, s2))
###
IndexError: Replacement index 2 out of range for positional args tuple

3、百分号操作符

Python还支持通过百分号配合格式化符号(如%s、%d等)实现字符串拼接。

s1 = 'python'
print('人生苦短,我只用%s'%s1)
# 人生苦短,我只用Python

此外,百分号操作符支持通过元组传入多个参数,示例如下:

s1 = '张三'
s2 = 24
s3 = 1.8
s4 = True
print('我叫%s,今年%s岁,是个%s米的大帅比,你觉得我说的%s吗?'%(s1, s2, s3, s4))
# 我叫张三,今年24岁,是个1.8米的大帅比,你觉得我说的True吗?

在百分号格式化中,%s可接受字符串、整型、浮点型或布尔型,并统一转换为字符串类型。若使用%d等其他格式符,则要求对应值必须为整数类型:其他类型会被转换为整型,浮点型仅保留整数部分,布尔型则转换为1或0。

常见的格式化符号

格式符号转换
%s通过str()字符串转换来格式化
%u无符号的十进制整数
%d有符号的十进制整数
%o八进制整数
%x十六进制整数,小写字母
%X十六进制整数,大写字母
%e浮点数字(科学计数法)
%E浮点数字(科学计数法,用E代替e)
%f浮点实数
%g浮点数字(根据值的大小采用%e或%f)
%G浮点数字(类似于%g)

与format方法不同,百分号格式化要求占位符数量与传入值的数量完全一致。无论值多还是值少,只要不匹配均会报错。

4、特殊符号f

Python提供了一种简洁的字符串格式化语法:在字符串前添加特定前缀以启用特殊功能。例如,前缀r用于取消转义字符,而前缀f则用于字符串格式化。

s1 = '博士'
s2 = 30
print(f'小红是一个{s1},刚毕业就获得了一个年薪{s2}万的工作。')
# 小红是一个博士,刚毕业就获得了一个年薪30万的工作。

f-string与format方法逻辑相似,均涉及占位与填充。但f-string采用“现挖现填”机制,在字符串定义时直接嵌入变量,相比format方法更不易出现占位符与参数不匹配的错误。

附:常见字符串去除空格的方法总结

去除字符串首尾空格,使用strip()方法

a = " a b c "
a.strip()

# 'a b c'

去除字符串左侧(开头)空格,使用lstrip()方法

a = " a b c "
a.lstrip()
# 'a b c '

去除字符串右侧(结尾)空格,使用rstrip()方法

a = " a b c "
a.rstrip()
# ' a b c'

总结

Python实现字符串拼接的四种核心方法如下:

(1)利用加号(+)或星号(*)运算符进行拼接。

(2)利用format方法进行格式化填充。该方法允许占位符数量少于参数数量,但必须确保每个占位符都有对应的值,即参数不能少于占位符。

(3)利用百分号进行格式化拼接。与format不同,百分号要求占位符数量与传入值的数量严格相等,多或少均会导致报错。

(4)利用f-string进行格式化拼接。其规则与百分号类似,要求每个占位符必须填充值,且数量需匹配。

本文介绍了Python字符串拼接的四种方法。如需了解更多Python字符串处理技巧,请查阅本站往期文章或继续关注后续更新。感谢支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。