提问人:Alexander Coffman 提问时间:5/18/2018 最后编辑:Karl KnechtelAlexander Coffman 更新时间:1/22/2023 访问量:139132
f-strings 给出 SyntaxError?
f-strings giving SyntaxError?
问:
我尝试了这段代码,并遵循教程:
my_name = 'Zed A. Shaw'
print(f"Let's talk about {my_name}.")
但是我收到一条错误消息,突出显示最后一行,如下所示:
print(f"Let's talk about {my_name}.")
^
SyntaxError: invalid syntax
为什么?
如果您从其他人的代码中收到这样的错误,请不要尝试自己修复它 - 其他项目根本不支持您的 Python 版本(例如:在 Python 2.7 和 Windows XP 上使用 pytesseract)。请改为寻找替代方法,或查看项目的文档或其他支持资源以获取解决方法。
特别是,内置的 pip
包管理器存在一个问题,即较新版本的 pip 需要较新的 Python 版本,因此旧安装无法将 pip
升级到某个点。有关详细信息,请参阅在 python < 3.6 中安装 pip 不起作用或升级 pip 失败并出现由 sys.stderr.write(f“ERROR: {exc}”) 导致的语法错误。
如果外部工具警告该问题,即使 Python 支持该功能,请更新该工具。有关示例,请参阅使用 Pylint 时出现语法错误无效,但代码运行良好。
这个问题专门针对任何使用 f 字符串的尝试都失败的情况(错误消息中的 ^
将指向结束引号)。有关特定 f-string 语法的常见问题,请参阅如何在使用 .format(或 f-string)时转义字符串中的大括号 ({}) 字符?、大括号内的 f 字符串公式不起作用、Discord.py - SyntaxError f-string:不允许空表达式、如何在 Python 3.6 中使用 f-string 中的换行符“\n”来格式化输出?。
有关字符串格式设置的替代方法的详细信息,请参阅如何将变量的值放入字符串中(将其插值到字符串中)?。
答:
我认为您有一个旧版本的 python。尝试升级到最新版本的 Python。自 python 3.6 以来,已将 F 字符串文字添加到 python 中。你可以在这里查看更多信息
评论
我认为这是由于旧版本。我已经尝试过新版本并且执行良好。结果正如预期的那样。
评论
在 Python 3.6 中添加了 f 字符串。在较旧的 python 版本中,f-string 将导致语法错误。
如果您不想(或不能)升级,请参阅如何在 Python 中将变量放入字符串中? 了解 f 字符串的替代方案。
这是一个 python 版本问题。
而不是使用
print(f"Let's talk about {my_name}."
用
print("Let's talk about {}.".format(my_name))
在 python2 中。
您的代码适用于 python3.7。
在这里查看:
my_name= "raushan"
print(f"Let's talk about {my_name}.")
https://repl.it/languages/python3
Python 解释器会导致以下问题,因为在执行程序时调用的 python 版本错误,因为 f 字符串是 python 3 而不是 python 2 的一部分。你可以这样做,它应该可以工作。若要解决此问题,请将 python 解释器从 2 更改为 3。python3 filename.py
评论
我相信你在这里遇到的问题归结为你在不知不觉中使用python 2。如果您尚未在计算机上将其设置为将 Python 3 作为默认版本,则应在终端中执行 python3,而不是标准的“python”命令。
我遇到了这个问题,所以希望这个答案对那些寻找它的人有所帮助。
评论