在python中连接字符串和整数

spe*_*ope 127 python concatenation string-concatenation

在python中说你有

s = "string"
i = 0
print s+i
Run Code Online (Sandbox Code Playgroud)

会给你错误,所以你写

print s+str(i) 
Run Code Online (Sandbox Code Playgroud)

没有得到错误.

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

小智 165

现代字符串格式:

"{} and {}".format("string", 1)
Run Code Online (Sandbox Code Playgroud)

  • 仅仅为了后代,因为过去的事情发生了变化,未来可能会发生变化:这是哪个版本的"现代"? (4认同)
  • 谢谢这个好方法. (2认同)
  • `str.format` 方法[在 Python 3.0 中引入,并向后移植到 Python 2.6](https://docs.python.org/3.0/whatsnew/2.6.html#pep-3101-advanced-string-formatting) 和稍后(请参阅/sf/answers/55492181/) (2认同)

Bur*_*lid 86

没有字符串格式:

>> print 'Foo',0
Foo 0
Run Code Online (Sandbox Code Playgroud)

  • 这适用于打印,但不能作为字符串分配给变量.它给出了Set对象. (2认同)
  • 除非您使用v3`print()`* function *并设置其某些参数,否则它还会在两个项目之间留下多余的空白。 (2认同)

Lev*_*von 34

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

 '{}{}'.format(s, i)
Run Code Online (Sandbox Code Playgroud)

或旧的,但"仍然坚持",%格式化:

 '%s%d' %(s, i)
Run Code Online (Sandbox Code Playgroud)

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

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


Cai*_*inG 13

Python是在一个有趣的语言,而通常有一个(或两个)"显而易见"的方式来完成特定的任务中,灵活性仍然存在.

s = "string"
i = 0

print (s + repr(i))
Run Code Online (Sandbox Code Playgroud)

上面的代码片段是用Python3语法,但印刷后的括号总是允许(可选),直到第3版使他们强制性的.

希望这可以帮助.

凯特琳


Kas*_*afi 9

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

new_string = f'{s} {i}'
print(new_string)
Run Code Online (Sandbox Code Playgroud)

要不就:

print(f'{s} {i}')
Run Code Online (Sandbox Code Playgroud)


小智 5

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

print(s+"{}".format(i))
Run Code Online (Sandbox Code Playgroud)