【问题标题】:Where the error and how to avoid false-character errors错误在哪里以及如何避免错误字符错误
【发布时间】:2019-12-29 00:28:59
【问题描述】:

语法错误(请复制/粘贴查看)

x = {
"0"​:​"G"​,
"1":"H"
}

经过在线解释器测试:

>>> x = {
... "0"​:​"G"​
  File "<stdin>", line 2
    "0"​:​"G"​
       ^
SyntaxError: invalid syntax

但是这个其他(看起来一样!)很好,(请复制/粘贴查看)

x = {
"0":"G",
"1":"H"
}

现实生活中的字典更长更复杂,但它是来自 PDF,我复制/粘贴到编辑器(或直接到终端相同的结果)。也许(在确认评论之后)这是一个 ASCII 转换问题,我需要清理......所以问题是 “如何清理看起来完美的复制/粘贴源代码?”


两者都测试过:

  • python --version = Python 2.7.17
  • python3 --version = Python 3.6.9

【问题讨论】:

  • 您的第一组中有非 ascii、非 Unicode(据我所知)字符。它们是非打印的,所以它们不会出现在屏幕上。他们确实出现在一个体面的编辑器中。您可以通过不输入不可解析的字符来避免这种情况。
  • 嗨@mpez0,谢谢(!)。既然您确认它是“非 ASCII 错误”,我编辑了这个问题......请参阅最后的注释:如何为 Python 清理它?
  • 如果你在你的字符串上使用例如ascii()内置方法,你会看到你的字符串包含\u200bZero Width Space你可能会检查stackoverflow.com/questions/31522361/…
  • 你用的是什么文本编辑器,OP?

标签: python


【解决方案1】:

我不能评论,所以我会写这个作为答案。

根据您使用的文本编辑器,我建议寻找可以执行此操作的包。这是Sublime Text 的一个。


还有一些在线工具可以复制/粘贴您的源代码并检查或清理它。例子:

【讨论】:

    【解决方案2】:

    我刚刚在 3.6 控制台中尝试过 - 它突出显示了第一个冒号周围的一些奇怪间距,并清楚地显示“SyntaxError:标识符中的无效字符”。见screenshot

    正如@mpez0 已经评论的那样 - 当您从 PDF(Word 等)复制时,会出现一堆额外的字符标记。

    【讨论】:

    • 谢谢麦克斯!抱歉,我将编辑以显示如何在此处添加图片
    • Max,我使用的是 Ubuntu,如何使用或安装这个彩色控制台?
    • @PeterKrauss 谢谢!我是新手 - 它不允许我直接粘贴... :)
    • 你用colorama的东西当彩色控制台?
    • 彼得,它实际上是 PyCharm - 我看到它也适用于 Ubuntu jetbrains.com/pycharm/download/#section=linux
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    相关资源
    最近更新 更多