在 [Python]中拼接(连接)字符串很简单,可以直接将两个字符串紧挨着写在一起,具体格式为:
strname = "str1" "str2"
strname 表示拼接以后的字符串变量名,str1 和 str2 是要拼接的字符串内容。使用这种写法,Python 会自动将两个字符串拼接在一起。
【示例】以连续书写的形式拼接字符串:
<pre class="python sh_python snippet-formatted sh_sourceCode" style="margin: 0px; display: block; padding: 0px; font-size: 14px; line-height: 1.6em; color: rgb(102, 102, 102); white-space: pre-wrap; overflow-wrap: break-word; background: none; border: none; border-radius: 0px;">
- str1 = "Python教程" "https://jq.qq.com/?_wv=1027&k=sqgP9S9Y/"
- print(str1)
- str2 = "[Java] "Python" "[C++] "[PHP]"
- print(str2)
</pre>
运行结果:
Python教程https://jq.qq.com/?_wv=1027&k=sqgP9S9Y JavaPythonC++PHP
需要注意的是,这种写法只能拼接字符串常量。
如果需要使用变量,就得借助+
运算符来拼接,具体格式为:
strname = str1 + str2
当然,+
运算符也能拼接字符串常量。
【示例】使用+
运算符拼接字符串:
<pre class="python sh_python snippet-formatted sh_sourceCode" style="margin: 0px; display: block; padding: 0px; font-size: 14px; line-height: 1.6em; color: rgb(102, 102, 102); white-space: pre-wrap; overflow-wrap: break-word; background: none; border: none; border-radius: 0px;">
- name = "C++教程"
- url = "https://jq.qq.com/?_wv=1027&k=sqgP9S9Y/"
- info = name + "的网址是:" + url
- print(info)
</pre>
运行结果:
C++教程的网址是:https://jq.qq.com/?_wv=1027&k=sqgP9S9Y/
Python字符串和数字的拼接
在很多应用场景中,我们需要将字符串和数字拼接在一起,而 Python 不允许直接拼接数字和字符串,所以我们必须先将数字转换成字符串。可以借助 str() 和 repr() 函数将数字转换为字符串,它们的使用格式为:
str(obj) repr(obj)
obj 表示要转换的对象,它可以是数字、列表、元组、字典等多种类型的数据。
请看下面的代码:
<pre class="python sh_python snippet-formatted sh_sourceCode" style="margin: 0px; display: block; padding: 0px; font-size: 14px; line-height: 1.6em; color: rgb(102, 102, 102); white-space: pre-wrap; overflow-wrap: break-word; background: none; border: none; border-radius: 0px;">
- name = "python教程入门学习"
- age = 8
- course = 30
- info = name + "已经" + str(age) + "岁了,共发布了" + repr(course) + "套教程。"
- print(info)
</pre>
运行结果:
python教程入门学习已经8岁了,共发布了30套教程。
str() 和 repr() 的区别
str() 和 repr() 函数虽然都可以将数字转换成字符串,但它们之间是有区别的:
- str() 用于将数据转换成适合人类阅读的字符串形式。
- repr() 用于将数据转换成适合解释器阅读的字符串形式(Python 表达式的形式),适合在开发和调试阶段使用;如果没有等价的语法,则会发生 SyntaxError 异常。
请看下面的例子:
<pre class="python sh_python snippet-formatted sh_sourceCode" style="margin: 0px; display: block; padding: 0px; font-size: 14px; line-height: 1.6em; color: rgb(102, 102, 102); white-space: pre-wrap; overflow-wrap: break-word; background: none; border: none; border-radius: 0px;">
-
s = "https://jq.qq.com/?_wv=1027&k=sqgP9S9Y/"
-
s_str = str(s)
-
s_repr = repr(s)
-
print( type(s_str) )
-
print (s_str)
-
print( type(s_repr) )
-
print (s_repr)
</pre>
运行结果:
<class 'str'> https://jq.qq.com/?_wv=1027&k=sqgP9S9Y/ <class 'str'> 'https://jq.qq.com/?_wv=1027&k=sqgP9S9Y/'
本例中,s 本身就是一个字符串,但是我们依然使用 str() 和 repr() 对它进行了转换。从运行结果可以看出,str() 保留了字符串最原始的样子,而 repr() 使用引号将字符串包围起来,这就是 Python 字符串的表达式形式。
另外,在 Python 交互式编程环境中输入一个表达式(变量、加减乘除、逻辑运算等)时,Python 会自动使用 repr() 函数处理该表达式。