打印(“”)与打印(f“”)

2024-05-23 19:26:06 发布

您现在位置:Python中文网/ 问答频道 /正文

前几天,我在python中讨论了print()和print(f-strings)。这一切都是从我开始的,我想把我的短绒和自动完成改为打印(f“,而不是打印(“)。几位经验丰富的程序员反对并说:

  1. 你不想那样
  2. 如果没有变量,则没有理由使用print(f
  3. 慢一点

所以,我这里的问题在于这些论点的语境有效性

  1. 你不想这样! 这显然是“我知道你真正想要什么,比你知道的要多。”这是一种程序员在不粗鲁的情况下进行大猩猩胸部捶击的方式,后面经常会有可靠的论据。但是,在这种情况下,这些论据很短。我相信没有针对它的上下文有效论据

  2. 如果没有变量,则没有理由使用print(f) 这在理论上是正确的,但在自动完成打印(f“)的情况下,有一个非常有效的原因,即工作流速度

  3. 速度较慢! 是的。打印(f)在打印编译时已知的字符串时速度较慢。如果您正在开发运行时关键型应用程序,这是有效的。但是,如果您正在开发运行时关键型应用程序,则不打印。在任何表单中打印对运行时来说都是一场噩梦。完成后最多打印一行,但这是一个O(1)操作。如果文本在屏幕上的输出速度如此之快,用户将没有时间通过阅读来处理它,这使得它毫无用处。最后一次O(1)打印的时间,无论是0.05秒还是0.10秒,在我认为的时间复杂性分析的所有情况下都是负的

请列举一种情况,这取决于用户实际阅读的速度,从开始到结束,打印速度都快于打印时间上限(f“”)

至于其他带有变量和格式的情况(这是我的典型用例),使用print(f)实际上比print(从Python3.6或类似的东西开始)要快。此外,参数的“可读性”更低,我认为这是PEP 498的基本原理所不具备的

请提供上下文有效的案例,从开发人员的角度来看,在这两者之间进行更改更快,并且在用例中更受欢迎,而不是在理论上


Tags: 用户应用程序时间情况理论用例速度关键