当前位置: 首页 > 知识库问答 >
问题:

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

李和裕
2023-03-14

我遇到了一个奇怪的错误,我正在努力理解。做一些常规代码清理并将所有字符串格式转换为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个答案

微生昌勋
2023-03-14

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

(f"updated {date.today().strftime('%D')}") # %m/%d/%y can also be written %D
孟思远
2023-03-14
print(f'Updated {date.today().strftime("%m/%d/%Y")}')

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

姜博
2023-03-14

有一种原生的方式:

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

更多信息:

  • PEP 3101——高级字符串格式化——基于每种类型控制格式化。
  • datetime.date.__format__
 类似资料:
  • 我正在编辑从tesseract ocr收到的一些电子邮件。 以下是我的代码: 但输出不正确。 输入: 输出: 但是当我在每次替换后将结果赋给一个新的字符串时,它工作得很好。为什么在同一个字符串中连续赋值不起作用?

  • 问题内容: 我在使用python eval函数执行多行字符串时遇到问题/ 问题答案: 只能评估Python 表达式 ,不能评估语句。函数定义是语句,而不是表达式。 使用执行Python语句。 请参阅“ 顶层组件” 文档 ,该文档在 文件输入 和 表达式输入 之间进行区分(其中包括): 在以下情况下使用此语法: […] 解析传递给该语句的字符串时; 和 […]的字符串参数必须具有以下形式: 千万 不

  • 问题内容: 尝试用变量替换字符串中所有#实例。它不起作用,但也不能重新调整任何错误。 哈希仍然存在。 不确定我缺少什么? 问题答案: 返回一个新字符串(它不会修改现有字符串),因此您需要: 尽管自动类型转换可能会为您处理字符串,但您可能还应该创建一个字符串。 仅供参考,在Javascript中,字符串是不可变的-现有字符串永远不会被修改。因此,这使得修改字符串的任何方法(如,,,,,,,等…)总是

  • 我正在使用一个简单的正则表达式匹配器来匹配wiketump中的一段JSON文本。JSON在XML内部。我已经检索到XML tag

  • 问题内容: String[] letters = {“A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “L”}; 为什么是 Fk呀! 输入AL字母之一绝对不会发生? 问题答案: 字符串是对象。所述通过引用,而不是由它们的内部值进行比较的对象。 有两种解决方案: 使用method来比较两个对象的值。 使用代替。这是原始的,因此可以使用。