【发布时间】:2017-05-04 01:52:49
【问题描述】:
感谢David Beazley's tweet,最近发现新的Python 3.6 f-strings也可以嵌套:
>>> price = 478.23
>>> f"{f'${price:0.2f}':*>20s}"
'*************$478.23'
或者:
>>> x = 42
>>> f'''-{f"""*{f"+{f'.{x}.'}+"}*"""}-'''
'-*+.42.+*-'
虽然我很惊讶这是可能的,但我不知道这有多实用,嵌套 f 字符串什么时候有用?这可以涵盖哪些用例?
注意:PEP 本身并没有提到嵌套 f 字符串,但是有一个 specific test case。
【问题讨论】:
-
可能与嵌套旧
str.format:stackoverflow.com/questions/40245650/… 的目的完全相同 -
又一个不错的here。我将把是否欺骗锤子的决定权交给你。
-
@TigerhawkT3 感谢您提供的好例子!我不确定这些是直接重复的,但肯定是相关的——就关闭而言……我会接受社区的任何决定。我也希望这里可能有一些特定于 f-strings 的东西。我们或许应该给话题时间和机会。
-
不确定是否值得回答,但金字塔现在更容易在一行中打印
print("\n".join(f'{a:{a}<{a}}' for a in range(1,10))) -
我刚才为计时器做了这个怪物:
f'''A timer has been set for {f"{hrs:02d}:{mins:02d}:{secs:02d}" if hrs > 0 else f"{f'{mins:02d}:{secs:02d}' if mins > 0 else f'{secs} seconds'}"}!'''
标签: python python-3.x string-formatting python-3.6 f-string