在python中连接字符串和整数


136

用python说你有

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

会给你错误,所以你写

print s+str(i) 

不会出错。

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


8
这是因为Python是强类型(en.wikipedia.org/wiki/Strong_typing)语言(谷歌可以通过它来了解更多信息:)。
mouad 2012年

3
这将导致歧义。会是什么结果"1" + 12或者"11"为什么?
好友

1
伙计我不确定您在想什么,但请不要仅仅假设。我的问题是连接2种不同的对象类型,然后找到了解决方案。我不知道你用python编程了多少,但是你有没有试过将两个字符串连接起来而当其中之一是None类型时出错。您可以进行显式检查,但这只是额外的代码。当您需要记录错误时,这种事情是必需的。
specialscope 2012年

2
只是s+str(i),您是对的!

Answers:




34

使用新样式.format()方法(默认使用.format()提供)进行字符串格式化:

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

或更旧的,但“仍然存在”,- %格式化:

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

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

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


14

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

s = "string"
i = 0

print (s + repr(i))

上面的代码段使用Python3语法编写,但始终允许打印后的括号(可选),直到版本3强制使用为止。

希望这可以帮助。

凯特琳




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.