我刚刚注意到,如果我在print()
函数中使用+
进行串联,并在shell中运行代码,那么文本显示得更快.然而,当使用,
时,文本的显示速度要慢得多,就像使用"正在键入"的动画效果一样.
这两者之间有效率差异吗?
我刚刚注意到,如果我在print()
函数中使用+
进行串联,并在shell中运行代码,那么文本显示得更快.然而,当使用,
时,文本的显示速度要慢得多,就像使用"正在键入"的动画效果一样.
这两者之间有效率差异吗?
编辑:似乎问题不在于操作的性质,而在于它们的速度,这在这个答案中没有讨论!
不同之处在于,对于+
,您使用串联创建一个更大的字符串以传递给print
函数,而对于,
,您将多个字符串传递给print
函数.请注意,这些行为对于print
函数并不特殊:串联只是字符串上的一种方法,逗号总是用来分隔函数参数.
例如,使用串联:
print('hello' + ' ' + 'world')
首先将三个字符串连接成'hello world'
,然后打印出来.
使用多个参数时:
print('hello', 'world')
这会将两个字符串传递给print
函数.正如您所读到的here,print
函数将一个或多个对象作为参数,并打印它们,以另一个参数sep
分隔,默认情况下,sep
是一个空格.因此,这将产生与前一个示例相同的输出.
请注意,任何数量的参数都可以传递给print
函数,并且这些参数本身可以是串联字符串:
print('i' + ' ' + 'want', 'to', 'print', 'some', 'strings')
很好的一点是,您可以指定sep
参数来更改行为:
print('mary', 'peter', 'bob', sep=' and ')
结果:mary and peter and bob