Python f字符串格式不能与strftime内联一起使用

时间:2018-11-12 20:30:48

标签: python python-3.x string-formatting 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

但是,此功能(在功能上相同)确实有效:

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

Updated 11/12/2018

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

如果字符串是另一个字符串的一部分,则需要在其中一个字符串中使用双引号

(f"updated {date.today().strftime('%D')}") # %m/%d/%y can also be written %D

答案 2 :(得分:2)

有一种本地方法:

print(f'Updated {date.today():%m/%d/%Y}')

更多信息