当前位置: 首页 > 面试题库 >

高级字符串格式与模板字符串

司寇山
2023-03-14
问题内容

我想知道使用模板字符串而不是新的高级字符串格式是否有优势?


问题答案:

模板要比通常的字符串格式更简单,但会降低表达力。PEP
292
的基本原理将模板与Python的%-style字符串格式进行了比较:

Python当前支持基于C的printf()‘%’格式字符的字符串替换语法。尽管格式非常丰富,但即使对于有经验的Python程序员,%格式的代码也容易出错。一个常见的错误是忽略了尾随的格式字符,例如sin
%(name)s

此外,可跟随%符号的规则相当复杂,而通常的应用程序很少需要这种复杂性。大多数脚本都需要进行一些字符串插值,但是大多数脚本都使用简单的“字符串化”格式,即%s或,%(name)s
此格式应更简单且更不易出错。

尽管新方法.format()改善了这种情况,但格式字符串语法相当复杂仍然是事实,因此基本原理仍然有其要点。



 类似资料:
  • Kotlin有一个很好的特性,叫做字符串模板。我真的很喜欢。 但是否可以在模板中设置任何格式?例如,我想在kotlin中设置字符串模板中的Double格式,至少要在小数分隔符后设置一些位数:

  • 问题内容: 我有以下Ecma-Script-6代码 输出如下: 和 我已经能够在此处将字符串串联起来,那么使用模板文字的情形将是什么? 问题答案: 如果像问题示例中那样仅将模板文字与占位符(例如)一起使用,则结果与串联字符串相同。从主观上讲,它看起来更好并且更易于阅读,尤其是对于多行字符串或包含这两者的字符串,因为您不必再​​转义那些字符了。 可读性是一个很棒的功能,但是关于模板最有趣的是Tagg

  • 问题内容: 我看到许多人使用这样的格式字符串: 而不是像这样简单地串联字符串: 格式字符串是否具有更好的性能,还是仅用于外观? 问题答案: 这只是为了外观。您可以一眼看出格式是什么。我们中的许多人都比微优化更喜欢可读性。 让我们看看IPython的意思:

  • 问题内容: 我正在开发一个应用程序,在其中执行一些请求以获取对象ID。在它们每个之后,我调用一个方法()将此id作为参数传递(请参见下面的代码)。 可以注意到,我正在将其转换为前缀并将其与前缀连接。但是,我知道我能做到这一点的多种其他方式(或者,例如),并在我的问题的结果:将超过字符串连接更好的可读性,代码约定和效率方面? 谢谢 问题答案: 这很容易成为基于意见的主题,但是我发现格式在大多数情况下

  • ES6引入了一种通过反引号( ` )标记的新的字符串文字类型。 这些字符串文字可以包括换行符,并且有一个新的机制用于将变量插入字符串:

  • 下面就是Array#pack、String#unpack中所用到的模板字符的一览表。模板字符后面可以跟上表示"长度"的数字。若使用'*'来取代"长度"的话, 则表示"剩下的所有字符"之意。 长度的定义因模板字符的不同而有所差异, 大体上像 "iiii" 这样的连续字符可以写成 "i4" 这个样子。 在下面的说明中, short和long分别表示长度为2和4字节的数值(也就是通常32位机器所指的