在程序实际应用中,少不了要进行字符串拼接的操作。下面介绍一下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)
# (虽然没有显示,但实际上有输出一个空字符串)

但是*运算符和+运算符一样,在进行字符串拼接的时候是有限制的,不能和字符串、浮点型(float)进行拼接,其中布尔型的值会默认转化为整型(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可以拼接字符串、整型、浮点型以及布尔型的值,这里面布尔型的值会默认转化为字符串类型来进行拼接。
值得注意的是: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 和 format 方法有点相似,也是挖坑,但是 f 是现挖现填,相比 format 来说更不容易填错坑。

5、总结

Python中实现对字符串拼接的四种方法:
(1)通过 + 或者 * 运算符来实现拼接。
(2)通过 format 方法来进行格式化填空,但是空可以少,值不能少,要确保每个空都会有一个对应的值。
(3)通过百分号来进行字符串格式化拼接,和 format 不一样的是,百分号是有几个空,就填几个值,值不能多,也不能少。
(4)通过特殊符号 f 进行字符串格式化拼接,和百分号方法一样,有几个空就填几个值,空里面不能没有值。

Python字符串拼接的四种方法相关推荐

  1. [转载] python字符串查找的四种方法

    参考链接: python中的字符串rindex python 字符串查找有4个方法,1 find,     2 index方法,3 rfind方法,   4 rindex方法. 1 find()方法: ...

  2. python字符串查找的四种方法_Python中的字符串查找操作方法总结

    基本的字符串位置查找方法Python 查找字符串使用 变量.find("要查找的内容"[,开始位置,结束位置]),开始位置和结束位置,表示要查找的范围,为空则表示查找所有.查找到后 ...

  3. python输入字符串并反序result_python字符串反转的四种方法详解

    python字符串反转的四种方法详解 这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用red ...

  4. 字符串反转python_python字符串反转的四种方法详解

    这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用reduce函数方法 book = 'Pyt ...

  5. js 字符串拼接的4种方法

    一.使用连接符 + 把想要连接的字符串串起来 let shy = '帅哥' let a = '我是' + shy console.log(a) // 我是帅哥 二.模板字符串 模板字符串(templa ...

  6. 字符串拼接的四种方式详解,代码测试

    字符串拼接的四种方式 1. 使用+ 号进行字符串拼接 2. concat() 方法 3 .StringBuffer(线程安全,效率没有 StringBuilder 高) 4. StringBuilde ...

  7. Python字符串连接的5种方法

    总结了一下Python字符串连接的5种方法: 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 "+" 来连接两个字符串: ...

  8. Python 数据降噪处理的四种方法——均值滤波、小波变换、奇异值分解、改变binSize

    Python 数据降噪处理的四种方法--均值滤波.小波变换.奇异值分解.改变binSize github主页:https://github.com/Taot-chen 一.均值滤波 1)算法思想 给定 ...

  9. 用python打开浏览器的四种方法

    python打开浏览器的四种方法 1.system方法 import os os.system(r'C:\"Program Files (x86)"\"Google&qu ...

  10. Python调用JS的四种方法

    Python调用JS的四种方法 1.PyExecJS 方法 1).安装PyExecJS 2). `PyExecJS 示例` 2.PyV8 方法 1).安装PyV8 2). `PyV8 示例` 3.js ...

最新文章

  1. OpenStack 虚拟机的磁盘文件类型与存储方式
  2. HDU 3397 Sequence operation 线段树 成段更新 区间合并
  3. 【Android应用开发】RecycleView API 翻译 (文档翻译)
  4. 《数据分析变革:大数据时代精准决策之道》一第1章 了解运营型分析
  5. 中国智能高清视频监控未来发展趋势
  6. google+stackoverflow_哪些开发问题最让程序员“头秃”?我们分析了Stack Overflow的11000个问题...
  7. 《白鹿原》金句摘抄(七)
  8. 桌面怎么设置 计算机 网络,Win10 10130桌面电脑网络图标怎么设置?
  9. 【计算机系统设计】实践笔记(3)改进数据通路:移位R型指令分析
  10. c55x汇编语言,TMS320C55x汇编语言编程A.ppt
  11. Nginx代理介绍、安装及配置详解
  12. JVM :执行jinfo命令报错Can't attach symbolicator to the process
  13. java设计与模式_设计模式《JAVA与模式》之状态模式
  14. C语言如何收集循环中的数,子数涵数·C语言——循环语句
  15. kafka创建Topic的一道面试题
  16. java day46【AJAX 、JSON】
  17. vue封装element-ui的table组件,灵活配置表头实现表格内编辑,按钮,链接等功能。...
  18. grafana导入json文件没有数据_基于SpringBoot将Json数据导入到数据库
  19. “理论上如何”其实是主观上如何
  20. 将图片上传到FTP服务器

热门文章

  1. 什么是软件即服务(SaaS) ? SaaS新手入门指南
  2. java操作.ini文件
  3. Centos7.6搭建FTP服务器
  4. 博弈论与计算机,《黑 | 科技》| 人类的博弈论,计算机来背锅
  5. 按压式按摩靠背的设计
  6. day16-正则表达式
  7. Cannot pull, git cannot resolve reference ORIG_HEAD
  8. 用文字描述给黑白照上色,这个免费网站火了!网友:比其他同类都好用
  9. 在linux下使用360随身wifi 2 | 李凡希的blog,在Linux下使用“360随身WiFi 2” | 李凡希的Blog...
  10. 邮件营销EDM运营笔记:选择合适的EDM平台