python字符串的拼接_python怎么拼接字符串

几乎任何一种编程语言,都把字符串列为最基础和不可或缺的数据类型。而拼接字符串是必备的一种技能。今天,我跟大家一起来学习Python拼接字符串的七种方式。

1、来自C语言的%方式print('%s %s' % ('Hello', 'world'))

>>> Hello world

%号格式化字符串的方式继承自古老的C语言,这在很多编程语言都有类似的实现。上例的%s是一个占位符,它仅代表一段字符串,并不是拼接的实际内容。实际的拼接内容在一个单独的%号后面,放在一个元组里。

类似的占位符还有:%d(代表一个整数)、%f(代表一个浮点数)、%x(代表一个16进制数),等等。%占位符既是这种拼接方式的特点,同时也是其限制,因为每种占位符都有特定意义,实际使用起来太麻烦了。

2、format()拼接方式# 简洁版

s1 = 'Hello {}! My name is {}.'.format('World', 'Python猫')

print(s1)

>>>Hello World! My name is Python猫.

# 对号入座版

s2 = 'Hello {0}! My name is {1}.'.format('World', 'Python猫')

s3 = 'Hello {name1}! My name is {name2}.'.format(name1='World', name2='Python猫')

print(s2)

>>>Hello World! My name is Python猫.

print(s3)

>>>Hello World! My name is Python猫.

这种方式使用花括号{}做占位符,在format方法中再转入实际的拼接值。容易看出,它实际上是对%号拼接方式的改进。这种方式在Python2.6中开始引入。

上例中,简洁版的花括号中无内容,缺点是容易弄错次序。对号入座版主要有两种,一种传入序列号,一种则使用key-value的方式。实战中,我们更推荐后一种,既不会数错次序,又更直观可读。

3、() 类似元组方式s_tuple = ('Hello', ' ', 'world')

s_like_tuple = ('Hello' ' ' 'world')

print(s_tuple)

>>>('Hello', ' ', 'world')

print(s_like_tuple)

>>>Hello world

type(s_like_tuple) >>>str

注意,上例中s_like_tuple并不是一个元组,因为元素间没有逗号分隔符,这些元素间可以用空格间隔,也可以不要空格。使用type()查看,发现它就是一个str类型。我没查到这是啥原因,猜测或许()括号中的内容是被Python优化处理了。

这种方式看起来很快捷,但是,括号()内要求元素是真实字符串,不能混用变量,所以不够灵活。

4、面向对象模板拼接from string import Template

s = Template('${s1} ${s2}!')

print(s.safe_substitute(s1='Hello',s2='world'))

>>> Hello world!

5、常用的+号方式str_1 = 'Hello world! '

str_2 = 'My name is Python猫.'

print(str_1 + str_2)

>>>Hello world! My name is Python猫.

print(str_1)

>>>Hello world!

6、join()拼接方式str_list = ['Hello', 'world']

str_join1 = ' '.join(str_list)

str_join2 = '-'.join(str_list)

print(str_join1) >>>Hello world

print(str_join2) >>>Hello-world

7、f-string方式name = 'world'

myname = 'python_cat'

words = f'Hello {name}. My name is {myname}.'

print(words)

>>> Hello world. My name is python_cat.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值