【编号0006】Python中的字符串拼接方式

不管是爬虫,还是数据分析,还是Web开发,字符串是最基础的基础结构。

本篇文章重点讲解对象,字符串——使用频率最高的数据结构之一【或许没有之一也说不定】

首先来讲一下字符串的格式化方式。

方法1. 使用 + 号

这种是最简单的字符串拼接方式了,如下:

str_a = 'hello'+ 'world'

最简单的加法,就是将两个字符串,通过一个加号 + ,将他们组合起来,然后赋值给另一个参数。

如果是多个字符串需要拼接,直接使用 字符串+字符串+字符串+...,就不多说了

方法2. %s 替换

这个也是非常常见的,使用%s进行替换,如下

str_b = "Nice to %s"
names = ['elisha','wendy','davis','gloria']
for name in names:
 print(str_b%name)
#结果输出
#Nice to elisha
#Nice to wendy
#Nice to davis
#Nice to gloria

这是单个的%s替换字符,如果是多个呢?

str_b = "Hi, %s. I'm %s"
names = [['elisha','wendy'],['davis','gloria']]
for name in names:
 print(str_b%(name[0],name[1]))
#结果输出
#Hi, elisha. I'm wendy
#Hi, davis. I'm gloria

效果图:

1.png

这里的%s替换方式,不仅仅只有%s,还有其他的一些特定格式,如下表格:

转换说明符,都以%开始 输出格式
d,i 十进制
u 无符号数
o 八进制
x 十六进制或长整数
X 十六进制
f,e,E 浮点数
g,G 指数小于-4时使用
s 字符串或者任意对象,同str生成的字符串
r 同repr生成的字符串

在%符号和转换说明符中间,还可以加如下的修饰符:

  1. - 左对齐标志【默认是右对齐】

  2. + 号表示显示数字的正负号

  3. 0 表示用0来填充空位

  4. 如果是将字典的值格式化成字符串,则%符号和转换说明符中间可以写(键)

  5. 一个小数点,用于按精度来分割内容的显示宽度

  6. 一个数字,指定要打印字符串中最大字符个数,小数点之后的位数;或者整数的最小位数

代码示意:

# 对应第4条内容
dict_a = {'name':'小布','age':18}
print("我的名字是%(name)s,我今年%(age)d岁,且永远%(age)d岁"%dict_a)
​
# 对应第1 2 3 5 6条内容
float_a = 12.58734
print("%f"%float_a)    #12.587340;正常打印
print("%3f"%float_a)   #12.587340;最小宽度为3,但是长度已经超过了3,所以正常打印
print("%10f"%float_a)  # 12.587340;最小宽度为10,宽度不足10,默认为右对齐,向左补充空格直至宽度为10
print("%.3f"%float_a)  #12.587;小数点后的数字为精度,小数点后保留3位
print("%.10f"%float_a) #12.5873400000;小数点后位数不足10,补0至位数为10
​

方法3. format替换

format函数也非常的强大,简单分类就是字符串格式化和数字格式化

1. 字符串格式化

print("{} {}".format("spbeen", "xiaobu"))    # 按顺序
# 结果:'spbeen xiaobu'

print("{0} {1}".format("spbeen", "xiaobu"))  # 按位置
# 结果:'spbeen xiaobu'

print("{1} {0} {1}".format("spbeen", "xiaobu")) # 按位置
# 结果:'xiaobu spbeen xiaobu'

上面就是非常简单的字符串格式化的方式,可以选择默认顺序,或者是指定format函数括号内的第几个参数

2. 数字的格式化

数字的格式化,因为考虑到排版、对其、缩进等问题,所以这个知识点,比较的多,下面依旧使用表格展示:

数字 格式 输出 描述
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} +3.14 带符号保留小数点后两位
-1 {:+.2f} -1.00 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)
5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)
10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指数记法
13 {:>10d} 13 右对齐 (默认, 宽度为10)
13 {:<10d} 13 左对齐 (宽度为10)
13 {:^10d} 13 中间对齐 (宽度为10)

表格的补充说明:

  • ^, <, > 分别是居中、左对齐、右对齐,后面带宽度

  • : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

  • + 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格

  • b、d、o、x 分别是二进制、十进制、八进制、十六进制。

方法4. f-string 语法

这个知识点,是Python3.6的新特性,所以要注意,3.6之前的版本,请勿测试,因为不支持

先上一个截图:

链接:Python3.6官方文档

2.png

相对于%s和format来讲,这是一个更简单、更方便的写法。

因为即使是%s和format,如果拼接的内容很多,则他们两个在括号内,都要写比较长的一串内容。

但是在这里呢,就非常方便了,只要是在字符串声明时,在引号前写一个字母f,则字符串内的{}就可以直接写该行代码前,出现过的变量名,非常的方便。甚至是函数名,都可以直接使用

上两个脚本代码段:

int_a = 98
int_b = 776
print(f"a+b的结果是{int_a+int_b}")
# 结果是 874
def accum_to(num1, num2):
 total = 0
 for i in range(num1, num2+1):
 total += i
 return total
​
num1 = 34
num2 = 867
print(f"从{num1}开始,一直累加到{num2},总和是{accum_to(num1,num2)}")
# 输出:从34开始,一直累加到867,总和是375717

效果图:

3.png

以上就是本篇文章的全部介绍内容了


!放在最后

如果文章中有什么错误或者建议修改的地方,欢迎留言纠正和回复

如果你喜欢本篇文章,不妨关注一下我们的公众号,每周更新两篇原创技术文档,都是干货

wxgzh1.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容