我在玩python,我意识到我们不需要使用'+'运算符来连接字符串,除非它与值一起使用。例如:string1 = 'Hello' 'World' #1 works finestring2 = 'Hello' + 'World' #2 also works finestring3 = 'Hello'string4 = 'World'string5 = string3 string4 #3 causes syntax errorstring6 = string3 + string4 #4 works fine现在我有两个问题:为什么语句3无效,而语句1无效?语句1和2之间是否存在技术上的差异,例如计算速度等?
3 回答

三国纷争
TA贡献1804条经验 获得超7个赞
您可以使用它,%s因为它比使用+符号更有效。
>>> string2 = "%s %s" %('Hello', 'World')
>>> string2
'Hello World'
(要么)
还有一种方法是 .format
>>> string2 = "{0} {1}".format("Hello", "World")
>>> string2
'Hello World'
>>>

临摹微笑
TA贡献1982条经验 获得超2个赞
语句3不起作用,因为当您将两个字符串表达式连接起来以创建新字符串时,您需要使用'+'运算符。
而在字符串1,2和4的情况下,用空格分隔的相邻文字使用不同的引用约定。因此,允许将它们打印为与串联相同。
同样,运行这两个操作不会有任何明显或明显的时差。
%%timeit -n 1
s1='ab'
s2='ba'
print(s1+s2)
o / p最慢的运行时间比最快的运行时间长17.08倍。这可能意味着正在缓存中间结果。每个循环57.8 µs±92.5 µs(平均±标准偏差,共运行7次,每个循环1个)
%%timeit -n 1
s3='ab' 'ba'
print(s3)
o / p最慢的运行时间比最快的运行时间长4.86倍。这可能意味着正在缓存中间结果。每个循环25.7 µs±21 µs(平均±标准偏差,共运行7次,每个循环1个)
添加回答
举报
0/150
提交
取消