Python f 字符串格式不适用于内联 strftime

Sam*_*gan 8 python string-formatting python-3.x f-string

我遇到了一个我试图理解的奇怪错误。进行一些常规代码清理并将所有字符串格式转换为 f 字符串。这是在 Python 3.6.6 上

此代码不起作用:

from datetime import date
print(f'Updated {date.today().strftime('%m/%d/%Y')}')

  File "<stdin>", line 1
    print(f'Updated {date.today().strftime('%m/%d/%Y')}')
                                               ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

但是,这(功能相同)确实有效:

from datetime import date
d = date.today().strftime('%m/%d/%Y')
print(f'Updated {d}')

Updated 11/12/2018
Run Code Online (Sandbox Code Playgroud)

我觉得我可能遗漏了一些明显的东西,并且第二次迭代很好,但我想了解这里发生了什么。

Geo*_*tov 24

有一种原生方式:

print(f'Updated {date.today():%m/%d/%Y}')
Run Code Online (Sandbox Code Playgroud)

更多相关信息:


ric*_*ier 10

print(f'Updated {date.today().strftime("%m/%d/%Y")}')
Run Code Online (Sandbox Code Playgroud)

您的代码过早地结束了字符串定义。

  • `print(f'更新了 {date.today():"%m/%d/%Y"}')` (11认同)