news 2026/6/10 17:02:49

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/6/10 10:30:01

基于Vue的问诊平台管理系统0jbb3(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末

系统程序文件列表 系统功能 患者,医生,服务评价,问诊查询,回复查询,科室分类 开题报告内容 基于Vue的问诊平台管理系统开题报告 一、选题背景与意义 &#xff08;一&#xff09;选题背景 随着互联网技术的飞速发展和人们健康意识的提升&#xff0c;线上问诊作为一种便捷、…

作者头像 李华
网站建设 2026/6/10 8:12:18

【干货收藏】0基础网络安全学习指南:大学生高薪就业的必备攻略

最近我的后台简直要被大学生们的私信淹没啦&#xff0c;全是关于网络安全转行的问题。看来大家对未来的职业规划都挺上心的&#xff0c;我特别欣慰&#xff01;今天咱就敞开了好好唠唠&#xff0c;给各位大学生朋友指条明路。 一、现状剖析&#xff1a;网络安全——大学生就业…

作者头像 李华
网站建设 2026/6/10 8:06:16

ERP 不是万能的,把它当 WMS 用,迟早要出问题

在很多企业的仓库管理中&#xff0c;一个常见的现象是&#xff1a;ERP 系统里的库存账面上完全正确&#xff0c;可仓库现场却依然混乱。订单拣货出现错误货物摆放杂乱员工操作经常出偏差这时很多管理者会本能地怀疑&#xff1a;“是不是我们的 ERP 系统不够好&#xff1f;”ERP…

作者头像 李华