【问题标题】:PythonL: invalid syntax file "<fstring>", line 1PythonL:无效的语法文件“<fstring>”,第 1 行
【发布时间】:2018-09-09 22:52:21
【问题描述】:

当做python3 Webhook.pythis 是文件)时,它给了我错误: File "<fstring>", line 1 (%X - %x) ^ SyntaxError: invalid syntax

我尝试打印出文件的原始内容,并且我还使用了十六进制编辑器,第 1 行没有应该导致错误的内容。我也做了: import time, os, aiohttp, plistlib, discord, asyncio, json, subprocess 在 Python3 的 Terminal.app 版本中,我没有错误,我的版本是 3.6.3,但更新到 3.6.5 以检查问题是否会消失,但事实并非如此。有人可以帮忙吗?

【问题讨论】:

  • 对于事后查看此内容的任何人:当我收到相同的错误时,事实证明我在文件的下方有一个 f 字符串语法错误,即使该错误似乎是指导入线。解决此问题后,我不再收到错误消息。
  • Python 3.8 已解决

标签: python-3.6


【解决方案1】:

我刚刚花了 1 个小时来审查我的代码,遇到了同样的问题。 就我而言,我开始删除部分代码以缩小问题范围。

我终于找到问题的根源了。

在我的例子中,我打印了一个 f"string",在 f 字符串中,我在调用的变量名称中有一个空格 example print(f"This is a statement {Var 23} "

那个空间,产生了我的问题。

我希望这会有所帮助:)

【讨论】:

  • 是的,到目前为止我是如何学习的;以艰难的方式学习它。
  • 谢谢,这是一个很模糊的错误日志。我在 10 秒内解决了 :)
  • 问题在 Python 3.8 中似乎已修复,也接受空格 ..
【解决方案2】:

{} 中的任何内容在使用f 字符串格式前缀格式化的字符串中无效时,就会发生这种情况。就我而言,Python 3.7。好处是你得到了导致错误消息问题的字符串。您没有得到行号,但是一旦您承认第 1 行不是错误的正确行号,仍然很容易弄清楚。

【讨论】:

  • Python 解析器的又一次史诗般的胜利。
  • @braintyler 恐怕有些人(例如美国人?)不会理解您的评论是幽默的 :)
【解决方案3】:

我的代码。问题是

我打印的是{=*10},而不是正确的格式{"="*10} 这个错误产生了我的问题

【讨论】:

    【解决方案4】:

    也可能是你有一个兼容python 3.8的字符串格式化方式,比如:

    f"print{count=}"
    

    与 3.6、3.7 不兼容。

    在这种情况下,您可以决定要求用户升级到 python3.8,或者降级您的代码。

    【讨论】:

      【解决方案5】:

      我通过类似的字符串 print(f"集合的长度是{len(s)个元素}")

      所以我只是将我的字符串移出并解决了问题。 print(f"集合的长度是{len(s)}个元素")

      【讨论】:

        【解决方案6】:

        这发生在我身上。为我解决的问题是,我将f 放在字符串之前,例如print(f'string {hello}') 并在我的字符串中有大括号,由于字符串之前的f,这意味着是一个字符串而不是变量。希望这对您有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-29
          • 1970-01-01
          • 2023-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多