我刚刚注意到,如果我在print()函数中使用+进行串联,并在shell中运行代码,那么文本显示得更快.然而,当使用,时,文本的显示速度要慢得多,就像使用"正在键入"的动画效果一样.

这两者之间有效率差异吗?

推荐答案

编辑:似乎问题不在于操作的性质,而在于它们的速度,这在这个答案中没有讨论!

不同之处在于,对于+,您使用串联创建一个更大的字符串以传递给print函数,而对于,,您将多个字符串传递给print函数.请注意,这些行为对于print函数并不特殊:串联只是字符串上的一种方法,逗号总是用来分隔函数参数.

例如,使用串联:

print('hello' + ' ' + 'world')

首先将三个字符串连接成'hello world',然后打印出来.

使用多个参数时:

print('hello', 'world')

这会将两个字符串传递给print函数.正如您所读到的hereprint函数将一个或多个对象作为参数,并打印它们,以另一个参数sep分隔,默认情况下,sep是一个空格.因此,这将产生与前一个示例相同的输出.

请注意,任何数量的参数都可以传递给print函数,并且这些参数本身可以是串联字符串:

print('i' + ' ' + 'want', 'to', 'print', 'some', 'strings')

很好的一点是,您可以指定sep参数来更改行为:

print('mary', 'peter', 'bob', sep=' and ')

结果:mary and peter and bob

Python-3.x相关问答推荐

使用Polars阅读按日期键分区的最新S3镶木地板文件

具有多个值的极轴旋转和熔化/取消旋转(反转旋转)操作(Pandas 堆叠/取消堆叠交替/UDF覆盖)

While循环不停止地等待,直到时间.睡眠结束

文件名中的文件打开和撇号

错误:无法为 pyconcorde 构建轮子,这是安装基于 pyproject.toml 的项目所必需的

Python根据条件从多行读取值

如何获取自定义文件上传路径的对象ID?

通过 Pandas 通过用户定义函数重命名数据框列

无法提出给定 for 循环的原因 (Python 3.11)

Python:如何在Pandas 的 .agg 函数中使用 value_counts()?

判断是否存在大文件而不下载它

没有可重定向到的 URL.提供一个 url 或在模型上定义一个 get_absolute_url 方法

Seaborn:注释线性回归方程

TypeError:JSON 对象必须是 str,而不是 'dict'

Python过滤器函数 - 单个结果

sys.stdin.readline() 和 input():读取输入行时哪个更快,为什么?

具有不均匀间隙的 Python 范围

将字符串拆分为最大长度 X 的片段 - 仅在空格处拆分

Python 3.4 多处理队列比 Pipe 快,出乎意料

在 PyCharm 中配置解释器:请使用不同的 SDK 名称