Python中汉字和变量拼接输出的8种方法(字符串拼接)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中汉字和变量拼接输出的8种方法(字符串拼接)相关的知识,希望对你有一定的参考价值。

参考技术A 方法1:使用加号“+”连接字符串
最常用的连接字符串的方式是用加号“+”连接两个字符串,连接后这两个字符串将连接成一个字符串。但需注意的是,不能用“+”连接字符串和数字,需要把数字使用str()函数转换成字符串,或者直接在数字两侧加带引号,再进行连接,示例如下:

该方法性能差,尽量少用,因为 Python 中字符串是不可变类型,使用“+”号连接相当于生成一个新的字符串,需要重新申请内存,当用“+”号连接非常多的字符串时,将会很耗费内存,可能造成内存溢出。

方法2:使用逗号连接字符串

方法3:通过“%”连接字符串

借鉴C语言中的 printf 函数功能,使用%号连接一个字符串和一组变量,字符串中的特殊标记会被自动使用右边变量组中的变量替换。

注:其中%s是占位符。

方法4:通过str.format()方法拼接

通过这种方式拼接字符串需要注意的是字符串中的数量要和format方法参数数量一致,否则会报错。

方法5:通过f-strings拼接

在python3.6.2版本中,PEP 498 提出一种新型字符串格式化机制,被称为“字符串插值”或者更常见的一种称呼是f-strings,f-strings提供了一种明确且方便的方式将python表达式嵌入到字符串中来进行格式化:

方法6:通过str.join()方法拼接

这种方式一般常使用在将集合转化为字符串,”.join()其中”可以是空字符,也可以是任意其他字符,当是任意其他字符时,集合中字符串会被该字符隔开,例如:

输出
我最喜欢的数字是-8

方法7:通过()多行拼接

python遇到未闭合的小括号,自动将多行拼接为一行。

方法8:通过string模块中的Template对象拼接

Template的实现方式是首先通过Template初始化一个字符串。这些字符串中包含了一个个key。通过调用substitute或safe_subsititute,将key值与方法中传递过来的参数对应上,从而实现在指定的位置导入字符串。

总结

格式化类:%、format()、 template
拼接类:+、()、join()、逗号
插值类: f-strings
当要处理字符串列表等序列结构时,彩用join()方式;拼接长度不超过20时,选用+号操作符方式;长度超过20的情况,高版本选用f-string,低版本看情况使用format()或join()方式。

Python字符串拼接和格式化输出

1、字符串拼接

example:a = ‘hello‘ , b = ‘python‘ , c = ‘!‘ 将a,b ,c 中的字符串连成一句话。

第一种方法:用 + 号
a + b +c

第二种方法:格式化字符串 %s
‘%s %s %s‘ % (a , b ,c)

第三种方法:‘‘.join()方式,注意括号里是要连接的可以是列表,元祖
‘ ‘.join([a,b,c]) (注:‘‘里面是连接后面各个字符串的字符)

第四种方法:.format方式
‘{}{}{}‘.format(a,b,c) (注:{}里面可以填入与后面相对应的符号)

format方法详解:
‘{}{}{}‘.format(a,b,c)
当{}里面是空的时候,里面默认索引为0,1,2按format括号里的顺序依次填入
‘{1}{2}{0}‘.format(a,b,c)
当{}里面有索引值时,按前面的索引值将后面的每项依次填入
‘{n1}{n2}{n3}‘.format(n1=a,n2=b,n3=c)
{}里面可以指定对象名称,后面通过赋值的方式给前面的相应的值,后面是无序的

--------------------------------------------------------------------------------
2、格式化输出

%s 格式化字符串
%d 格式化整数
%f 格式化小数
%c 格式化ASCII字符
%o 格式化八进制
%x 格式化十六进制
%e 用科学计数法格式化

- 用作左对齐
+ 用在正数前面显示正号,用在负数前没啥用
m.n m是显示的最小长度,当m大于格式化位数时才起作用显示m位,n是代表小数的位数。

转义字符
换行 a提示音 退格键 横向制表符
自然字符串 r‘ ‘ ,即取消转义

example:
‘%s‘%‘jianeng‘ # ‘jianeng‘
‘%15s‘%‘jianeng‘ # ‘ jianeng‘
‘%-8s‘%‘aa‘ # ‘aa ‘

‘%s‘%1 # ‘1‘
‘%s‘%1.1 # ‘1.1‘
‘%s‘%[1,2,3,4] # ‘[1, 2, 3, 4]‘

‘%d‘%2 # ‘2‘
‘%d‘%1.1 # ‘1‘
‘%+d‘%1 # ‘+1‘
‘%+d‘%-1 # ‘-1‘

‘%f‘%10.2 # ‘10.200000‘
‘%.3f‘%10.2 # ‘10.200‘ .3:保留3位小数

‘%10.3f‘%10.2 # ‘ 10.200‘ 总共10位,保留3位小数
‘%-10.3f‘%10.2 # ‘10.200 ‘ 左对齐

‘%c‘%65 #A
‘%c‘%97 #a

‘%o‘%7 #逢8 进1
‘%o‘%8 #10
‘%o‘%24 #30


#1-9,A,B,C,D,E,F

‘%x‘%9 # ‘9‘
‘%x‘%10 #a
‘%x‘%11 #b
‘%x‘%12 #c
‘%x‘%13
‘%x‘%17 #11

#%e 用科学计数法格式化

‘%e‘%10 #‘1.000000e+01‘ 1*10^1
‘%e‘%100 #1*10^2

s = ‘www www‘
s = ‘www www‘

‘‘‘
换行 a提示音 退格键 横向制表符
‘‘‘
print(r‘www www‘) # www www 取消转义

------------------------------------------------------------------------------
3、深复制和浅复制

复制和浅复制,只会出现在,嵌套列表的时候
ample:
li = [‘a‘,‘b‘]
l2 = [‘c‘,li]
l3 = l2.copy()

id(l3),id(l2) #新生产一个列表

id(l3[1]),id(l2[1]) #两者相等,嵌套的列表,没有新生成对象,仍然指向原对象

#浅复制,就是 l2.copy() ,嵌套的列表不会新建一个对象, li= l2[li] = l3[li]



#深复制
import copy
l4 = copy.deepcopy(l2)

id(l2[1]),id(l4[1]) #两者不相等,嵌套列表新生成了一个对象




#扩展

‘%s‘%‘asd‘ #打印出展示的值,给客户看
‘%r‘%‘asd‘ #如果是字符串,就多加一个引号 “ ‘asd‘ ” %r会打印代码原始值,给程序员看的

以上是关于Python中汉字和变量拼接输出的8种方法(字符串拼接)的主要内容,如果未能解决你的问题,请参考以下文章

Python字符串拼接和格式化输出

8种Python字符串拼接的方法,你知道几种?

8种Python字符串拼接的方法,你知道几种?

8种Python字符串拼接的方法,你知道几种?

8种Python字符串拼接的方法,你知道几种?

Python怎么将变量内拼接的字符换行输出?