问题标签 [f-string]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
16 回答
1026165 浏览

python - 字符串格式:% vs. .format vs. f-string 文字

Python 2.6 引入了该str.format()方法,其语法与现有%运算符略有不同。哪个更好,在什么情况下?

Python 3.6 现在通过语法f"my string". 此格式选项是否比其他格式更好?

  1. 下面使用每种方法,结果都一样,那么有什么区别呢?

  2. 此外,字符串格式化何时出现在 Python 中?例如,如果我的日志记录级别设置为 HIGH,我仍然会因为执行以下%操作而受到打击吗?如果是这样,有没有办法避免这种情况?

0 投票
4 回答
33680 浏览

python - python-3.6中带有'f'前缀的字符串

我正在尝试 Python 3.6。通过新代码,我偶然发现了这种新语法:

看来我们可以这样做:

任何人都可以阐明其内部工作原理吗?特别是 f 前缀字符串可以采用的变量范围是什么?

0 投票
2 回答
8789 浏览

python - 为什么在 Python 3.6 alpha 中文字格式的字符串(f 字符串)如此缓慢?(现在在 3.6 稳定版中修复)

我从 Python Github 存储库下载了 Python 3.6 alpha 版本,我最喜欢的新功能之一是文字字符串格式化。它可以像这样使用:

这似乎与在实例上使用该format函数做同样的事情。str但是,我注意到的一件事是,与仅调用format. 以下是timeit关于每种方法的说明:

如果我使用字符串作为timeit' 的参数,我的结果仍然显示模式:

如您所见,使用format几乎花费了一半的时间。我希望文字方法更快,因为涉及的语法更少。幕后发生了什么导致文字方法慢得多?

0 投票
5 回答
8455 浏览

python - f-strings 应该在 Python 3.4 中工作吗?

这应该在 Python 3.4 中工作:

>>> a='tttt'

>>> print(f'The value of a is {a}')

0 投票
3 回答
5267 浏览

python - Python 3.6 中的格式化字符串文字是什么?

Python 3.6 的特性之一是格式化字符串。

这个 SO question (String with 'f' prefix in python-3.6) 询问格式化字符串文字的内部结构,但我不了解格式化字符串文字的确切用例。我应该在哪些情况下使用此功能?显式不是比隐式更好吗?

0 投票
1 回答
4554 浏览

python - 使用 f 字符串的查询格式

我有非常大的字典,我想插入 MySQL 表。字典键是表中的列名。到目前为止,我正在构建这样的查询:

输出:

这适用于Python2.7

但是在 Python 3.6 中,如果我使用这样的字符串文字:

它打印这个:

有小费吗?

0 投票
13 回答
30315 浏览

python - 嵌套的 f 字符串

感谢David Beazley 的推文,我最近发现新的Python 3.6 f-strings也可以嵌套:

或者:

虽然我很惊讶这是可能的,但我不知道这有多实用,嵌套 f 字符串什么时候有用?这可以涵盖哪些用例?

注意:PEP 本身并没有提到嵌套 f 字符串,但是有一个特定的测试用例

0 投票
2 回答
1821 浏览

python - 为什么当它们引用的变量发生变化时,f-strings 不会发生变化?

在最近的 Python 3.6 版本中使用新的 f 字符串时,我注意到以下几点:

  1. 我们创建一个foo带有 value 的变量bar

    /li>
  2. 然后,我们声明一个新变量,也就是我们的 f-string,它应该foo被格式化:

    /li>
  3. 好的,一切正常,然后我们调用baz来检查它的值:

    /li>
  4. 让我们尝试更改 的值foo并再次调用baz

    /li>

不应该是动态的吗?为什么会这样?我认为如果值发生foo变化,f-string 会更新,但这并没有发生。我不明白这是如何工作的。

0 投票
1 回答
436 浏览

python - 为什么在 Python 3.6 中计算 f"\{10}" 时符号 '{' 仍然存在?

f-string是 Python 3.6 中的新特性之一。

但是当我尝试这个时:

我无法弄清楚为什么左花括号'{'仍然在结果中。我认为结果应该与str.format

PEP-0498中,它没有明确回答这个问题。那么是什么导致左花括号保留在结果中,以及是什么导致了and'{'之间的这种差异?f-stringstr.format()

0 投票
5 回答
8691 浏览

python - 如何在 Python 中将列表插入到 f 字符串中?

说我有一个功能

我想将函数的结果插入到字符串中以获取"001 002 003". 我试过这个:

但它产生了SyntaxError: can't use starred expression here。我可以使用 f 字符串来执行此操作吗?