在 Python 中说你有
s = "string" i = 0 print s + i
会给你错误,所以你写
print s + str(i)
不会出错。
我认为这是处理 int 和 string 连接的一种相当笨拙的方法。
即使 Java 也不需要显式强制转换为 String 来进行这种连接。 有没有更好的方法来实现这种连接,即不使用 Python 进行显式强制转换?
字符串格式化,使用新样式的 .format()方法(使用默认的 。格式()提供) :
.format()
'{}{}'.format(s, i)
或者更老的,但“仍然存在”的 %格式:
%
'%s%d' %(s, i)
在上面的两个示例中,连接的两个项之间都有 没有空格。如果需要空间,可以简单地将其添加到格式字符串中。
这些提供了一个 很多的控制和灵活性,关于如何连接项目,它们之间的空间等。有关 格式规范如下的详情。
现代字符串格式:
"{} and {}".format("string", 1)
没有字符串格式:
>> print 'Foo',0 Foo 0
Python 是一种有趣的语言,尽管通常有一两种“显而易见”的方法来完成任何给定的任务,但灵活性仍然存在。
s = "string" i = 0 print (s + repr(i))
上面的代码片段是用 Python3语法编写的,但是 打印之后的圆括号一直是允许的(可选) ,直到版本3强制使用它们。
Format ()方法可用于连接字符串和整数:
print(s + "{}".format(i))
如果只想打印,可以这样做:
print(s, i)
在 Python 3.6和更新的版本中,你可以这样格式化它:
new_string = f'{s} {i}' print(new_string)
或者只是:
print(f'{s} {i}')
让我们假设您想在下面这种情况下连接一个字符串和一个整数:
for i in range(1, 11): string = "string" + i
您将得到一个类型或连接错误。
最好的方法是这样做:
for i in range(1, 11): print("string", i)
这将给出连接的结果,如字符串1、字符串2、字符串3等。
你也可以使用 F 弦!
s = "string" i = 95 print(f"{s}{i}")