学习Python串联字符串和Int

196 阅读1分钟

简介

Python 支持使用+ 操作符进行字符串连接。在大多数其它编程语言中,如果我们将一个字符串与一个整数(或任何其它原始数据类型)连接起来,语言会负责将它们转换为一个字符串,然后将其连接起来。

然而,在Python中,如果你试图用+ 操作符将一个字符串和一个整数连接起来,你会得到一个运行时错误。

例子

让我们看一个使用+ 操作符连接字符串 (str) 和整数 (int) 的例子。

string_concat_int.py

current_year_message = 'Year is '

current_year = 2018

print(current_year_message + current_year)

所需的输出是字符串:Year is 2018 。然而,当我们运行这段代码时,我们得到以下运行时错误。

Traceback (most recent call last):
  File "/Users/sammy/Documents/github/journaldev/Python-3/basic_examples/strings/string_concat_int.py", line 5, in <module>
    print(current_year_message + current_year)
TypeError: can only concatenate str (not "int") to str

那么,如何在Python中串联strint ?有各种其他方法来执行这个操作。

使用str() 函数

我们可以将一个int 传递给str() 函数,它将被转换为一个str

print(current_year_message + str(current_year))

current_year 的整数将以字符串的形式返回:Year is 2018

使用% 内插运算符

我们可以用printf风格的字符串格式化将数值传递给一个转换规范。

print("%s%s" % (current_year_message, current_year))

current_year 的整数被插值为一个字符串:Year is 2018

使用str.format() 函数

我们还可以使用 str.format()函数来进行字符串和整数的连接。

print("{}{}".format(current_year_message, current_year))

current_year 整数被类型强制为字符串:Year is 2018

使用f-strings

如果你使用 Python 3.6 或更高版本,你也可以使用f-strings

print(f'{current_year_message}{current_year}')

current_year 整数被插值为一个字符串:Year is 2018