news 2026/4/17 4:12:32

python 字符串拼接

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python 字符串拼接

Python 的str(字符串)是不可变的(immutable)。每次用+或其它方式“拼接**”都会创建新的字符串对象**,如果拼很多次,会造成很多临时对象,性能差。因此,少量拼接(比如几段)用+或 f-string 很方便;大量或循环里拼接应用''.join(...)或字符串缓冲(io.StringIO)或构建 list 再 join。

1.常用的字符串拼接方式

1 f-string(python3.6以上)-语法直观、速度快、能插入表达式与格式化。

name="Alice"age=30s=f"Name:{name}, Age:{age}"# 支持表达式、格式化#f-string 允许你在 {} 里面写任何能计算结果的东西#支持控制 显示出来的文字形式。如 小数保留几位?是否补零?是否右对齐 / 左对齐?pi=3.14159f"pi≈{pi:.2f}"# 'pi≈3.14'

补充一下:pi:.2----------format Specification(Python 格式化迷你语言)

部分含义
pi要格式化的变量
:.2f说明“我想把这个变量格式化成保留 2 位小数的浮点数”

其中:

:2f|||||└── 输出格式是float(浮点数)|└────── 保留2位小数 └────────── 表明后面是格式化指令

记录一下python 的讲解

在 Python 中,format_spec是格式化规范的一种表示,它提供了强大而灵活的字符串格式化功能。通过format_spec,我们可以精确控制数值、字符串等对象的输出格式,例如设置精度、对齐方式、填充字符等。本文将详细介绍format_spec的基础概念、使用方法、常见实践以及最佳实践,帮助读者深入理解并高效使用这一特性。其格式的一般结构如下:

数字格式的定义以':'号开始。碰到了': '字符就知道要定义一个数字的显示格式了。格式的定义顺序为[[fill]align][sign][#][0][width][,][.precision][type]''' 在 Python 的 f-string(以及 str.format()、format())里,冒号 : 的作用只有一个:告诉 Python:冒号后面是“格式化说明(format specification)”。即: {变量名 : 格式说明} 没有 : = 原样输出 有 : = 使用特定格式输出 '''format_spec::=[[fill]align][sign][#][0][width][grouping_option][.precision][type]fill::=<anycharacter>align::="<"|">"|"="|"^"sign::="+"|"-"|" "width::=digit+grouping_option::="_"|","precision::=digit+type::="b"|"c"|"d"|"e"|"E"|"f"|"F"|"g"|"G"|"n"|"o"|"s"|"x"|"X"|"%"
  • fill:填充字符(任意字符,常用空格或0
  • align:对齐方式:<(左对齐)、>(右对齐)、^(居中)、=(数字的符号在最左,数字在中间)
  • sign:符号处理:+(始终显示正负号)、-(只显示负号,默认)、(空格,正数前留空格)
  • #:对“#”参数来说,对于二进制/八进制/十六进制,会保留前缀0b/0o/0x;对于浮点会强制显示小数点等
  • 0:如果放在 width 前,用0作为填充且与=相关(常见写法如08.2f
  • width:最小字段宽度(整数),不足时用填充字符填充
  • ,:千位分隔符(每三位加逗号)
  • .precision:精度,含义随type而异(浮点表示小数位数;通用表示有效位数等)
  • type:格式类型(d,b,o,x,X,f,F,e,E,g,G,%,s等)
  • fill 【可选】空白处填充的字符
  • align 【可选】对齐方式(需配合width使用)
  • <,内容左对齐
  • >,内容右对齐(默认)
  • =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
  • ^,内容居中
  • sign 【可选】有无符号数字
  • +,正号加正,负号加负;
  • -,正号不变,负号加负;
  • 空格 ,正号空格,负号加负;
  • # 【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
  • , 【可选】为数字添加分隔符,如:1,000,000
  • width 【可选】格式化位所占宽度
  • .precision 【可选】小数位保留精度
  • type 【可选】格式化类型
  • 传入” 字符串类型 “的参数
    • s,格式化字符串类型数据
    • 空白,未指定类型,则默认是None,同s
  • 传入“ 整数类型 ”的参数
    • b,将10进制整数自动转换成2进制表示然后格式化
    • c,将10进制整数自动转换为其对应的unicode字符
    • d,十进制整数
    • o,将10进制整数自动转换成8进制表示然后格式化;
    • x,将10进制整数自动转换成16进制表示然后格式化(小写x)
    • X,将10进制整数自动转换成16进制表示然后格式化(大写X)
  • 传入“ 浮点型或小数类型 ”的参数
    • e, 转换为科学计数法(小写e)表示,然后格式化;
    • E, 转换为科学计数法(大写E)表示,然后格式化;
    • f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
    • F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
    • g, 自动在e和f中切换
    • G, 自动在E和F中切换
    • %,显示百分比(默认显示小数点后6位)

fill 【可选】空白处填充的字符

align 【可选】对齐方式(需配合width使用)

  • <,内容左对齐
  • >,内容右对齐(默认)
  • =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
  • ^,内容居中

width 【可选】格式化位所占宽度

2.+拼接

a="hello"b="world"c=a+" "+bprint(c)#hello world

+拼接时,两边必须都是字符串

3.,-----print 专用,不是真拼接

print("age is",age)#outputageis18#本质上,print(*objects,sep=' ',end='\n',file=sys.stdout,flush=False)# *objects:可以传入任意多个要打印的对象(0 个、1 个、多个都行)。# sep:分隔符,默认为一个空格 ' '。它决定了多个对象之间用什么字符串分隔。# end:结尾字符串,默认为换行 \n。#对于print("age is",age)#实际上是把两个对象传给了 print():字符串"age is"变量 age(假设 age 是整数18) Python 会: 自动把每个对象转换成字符串(对非字符串对象调用str())。 用 sep 参数指定的分隔符(默认是空格" ")把它们连起来。 最后加上 end(默认换行)输出。

4.%格式化

name="Tom"age=18s="My name is %s, age is %d"%(name,age)print(s)# %相当于一个占位符,告诉这里要插入东西了。
符号含义
%s字符串(万能)
%d整数
%f浮点数

5.str.format()

name = "Tom" age = 18 s = "My name is {}, age is {}".format(name, age) print(s) #output My name is Tom, age is 18 #还可以指定位置 print("{1} is {0}".format("happy", "Tom")) #output Tom is happy #控制格式 pi = 3.14159 print("pi = {:.2f}".format(pi)) #以 :开头,作为开头标志符--{变量:格式规则}---冒号 : 的作用:告诉 Python 后面是格式规则

6.上边写的太复杂了,在写一下f-string

name="Tom"age=18print(f"My name is{name}, age is{age}")#outputMy nameisTom,ageis18#还可以直接写表达式,但是必须是一个要能够算出来值的东西、不能做那些只做动作但是没有产出结果的东西a=3b=5print(f"a + b ={a+b}")#格式化pi=3.14159print(f"pi ={pi:.2f}")#同样是以 : 作为格式化的开的头标志。

7.join(),一般都是大量字符串拼接专用的

lst=["I","love","Python"]s=" ".join(lst)print(s)#outputI love Python#但是要注意,join的要求很严格,必须全部是字符串才可以" ".join(["age",18])#---这是错误的,拼接对象必须都是字符串。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 7:38:11

Web品质 - 重要的HTML元素

Web品质 - 重要的HTML元素 引言 在构建现代网页的过程中,HTML元素扮演着至关重要的角色。它们不仅是网页内容的基石,也是影响用户体验和搜索引擎优化(SEO)的关键因素。本文将深入探讨一些在网页设计中至关重要的HTML元素,并解释它们如何帮助提升Web品质。 HTML元素概述…

作者头像 李华
网站建设 2026/4/16 22:34:15

基于SpringBoot的智慧农家乐管理系统毕业设计项目源码

题目简介 在乡村旅游数字化、农家乐运营精细化需求升级的背景下&#xff0c;传统农家乐管理存在 “预订混乱、资源调度低效、客群分析缺失” 的痛点&#xff0c;基于 SpringBoot 构建的智慧农家乐管理系统&#xff0c;适配游客、农家乐经营者、乡村文旅管理员等角色&#xff0c…

作者头像 李华
网站建设 2026/4/15 14:14:50

基于微信小程序的执业药师题库系统毕业设计项目源码

题目简介在执业药师备考场景移动化、刷题需求个性化升级的背景下&#xff0c;传统题库存在 “适配性差、刷题无规划、错题管理低效” 的痛点&#xff0c;基于微信小程序构建的执业药师题库系统&#xff0c;适配备考考生、题库管理员、教研人员等角色&#xff0c;实现章节刷题、…

作者头像 李华
网站建设 2026/4/15 14:15:18

Vue——Vue 3 + Vite + Ant Design Vue + Pinia 数据库系统技术重难点解析

Vue 3 + Vite + Ant Design Vue + Pinia 数据库系统技术重难点解析 在开发数据库管理系统的过程中,我们遇到了一些技术难点,本文将围绕这些难点展开讨论,并提供相应的解决方案和示例代码。 一、复杂表单状态管理与字段权限控制 技术难点 数据库系统中的表单往往具有复杂…

作者头像 李华
网站建设 2026/4/15 14:14:28

概论统计思维导图

概率论与数理统计思维导图 一、概率论基础 1. 随机事件与概率 随机试验&#xff1a;可重复、结果已知但不确定样本空间(Ω)&#xff1a;所有可能结果的集合随机事件&#xff1a;Ω的子集 基本事件&#xff1a;单元素子集必然事件(Ω)&#xff1a;一定发生不可能事件(∅)&#x…

作者头像 李华