149

在 python 中说你有

s = "string"
i = 0
print s+i

会给你错误所以你写

print s+str(i) 

不出错。

我认为这是处理 int 和 string 连接的一种非常笨拙的方法。甚至 Java 也不需要显式转换为 String 来执行这种连接。有没有更好的方法来进行这种连接,即无需在 Python 中显式转换?

4

9 回答 9

189

现代字符串格式:

"{} and {}".format("string", 1)
于 2012-07-19T10:43:47.410 回答
91

没有字符串格式:

>> print 'Foo',0
Foo 0
于 2012-07-19T10:44:18.277 回答
37

字符串格式化,使用新式.format()方法(使用.format()提供的默认值):

 '{}{}'.format(s, i)

或较旧但“仍然存在”的 -%格式:

 '%s%d' %(s, i)

在上面的两个示例中,连接的两个项目之间没有空格。如果需要空间,可以简单地添加到格式字符串中。

这些为如何连接项目、它们之间的空间等提供了很多控制和灵活性。有关格式规范的详细信息,请参阅此

于 2012-07-19T10:42:49.873 回答
18

Python 是一种有趣的语言,虽然通常有一种(或两种)“显而易见”的方式来完成任何给定的任务,但灵活性仍然存在。

s = "string"
i = 0

print (s + repr(i))

上面的代码片段是用 Python3 语法编写的,但 print 后面的括号始终是允许的(可选),直到版本 3 强制它们。

希望这可以帮助。

凯特琳

于 2013-07-10T07:49:46.470 回答
5

format() 方法可用于连接字符串和整数

print(s+"{}".format(i))
于 2019-01-10T18:36:15.170 回答
4

在 python 3.6 及更高版本中,您可以像这样格式化它:

new_string = f'{s} {i}'
print(new_string)

要不就:

print(f'{s} {i}')
于 2020-06-29T18:00:59.373 回答
0

如果你只想打印你可以这样做:

print(s , i)
于 2020-04-27T12:00:03.947 回答
0

假设您想在这样的情况下连接字符串和整数:

for i in range(1,11):
   string="string"+i 

并且您收到类型或连接错误

最好的方法是做这样的事情:

for i in range(1,11):
   print("string",i)    

这将为您提供连接的结果,如字符串 1、字符串 2、字符串 3 ...等

于 2020-10-23T15:11:38.177 回答
0

您也可以使用f 字符串

s = "string"
i = 95
print(f"{s}{i}")
于 2021-08-20T12:41:42.607 回答