1

我写

 # -*- coding: utf-8 -*- 

    def ANdata(key, id, format, nR, start) :
        queryUrl = 'http://developer.website.com/api/v4/type/news?api_key=' + key + '&id=' + id + '&format=' + format + '&results=' + nR + '&start=' + start
        print "test"

错误是:

   Encountered "\"test\"" at line 6, column 11. Was expecting one of:     <NEWLINE> ...     "(" ...     "[" ...     ";" ...     "," ...     "." ...     "+" ...     "-" ...     "*" ...     "/" ...     "//" ...     "<<" ...     
 ">>" ...     "%" ...     "^" ...     "|" ...     "&" ...     "=" ...     ">" ...     "<" ...     "==" ...     "<=" ...     ">=" ...     "!=" ...     "+=" ...     "-=" ...     "*=" ...     "/=" ...     "//=" ...     "%=" ...     "&=" ...     
 "|=" ...     "^=" ...     "<<=" ...     ">>=" ...     "**=" ...     "or" ...     "and" ...     "not" ...     "is" ...     "in" ...     "if" ...     ";" ...     "," ...

你看到问题了吗?

4

3 回答 3

8

在 Python 3 中,print从关键字更改为函数。所以要使用它,你必须把它的论点放在括号中:

print("test")

在 Python 2.x 中,它可以使用或不使用括号。

于 2013-11-09T16:21:36.507 回答
0

我仍然不知道 2.3mu 的问题。但是我在更改为 2.7 后解决了这个问题。

于 2013-11-09T16:19:12.183 回答
0

根据我的经验,当您复制代码(例如从书中)时,这种错误经常(仍然)出现在 Eclipse 的 PyDev 中。

当它是由虚假的、不可见的 Unicode 字符(例如“零宽度空间”或“控制”)引起的时,它不可避免地会出现,并且不能“正确”。

您可能认为将文本从书中复制到某种简单的文本编辑器应用程序可能会自动“清理”文本,以便继续复制粘贴,但根据我卑微(和痛苦)的经验,它通常不会。

检查此错误是否由此类事情引起的最佳方法是检查 Unicode 字符检查器中的文本行。在撰写本文时,我推荐这个

在那之后,清理这段代码就不是你想要手动完成的事情了。

您应该能够使用 Eclipse 自己的“查找/替换”对话框 (Ctrl-F) 来执行此操作:

  • 检查“正则表达式”
  • 把它放在 Find: "\u200B" 中(例如在零宽度空间的情况下)

或者,您可以使用记事本++:

  • 将有问题的受污染文本复制到新的 Notepad++ 文档
  • 搜索并替换为选中的“正则表达式”
  • Notepad++ 需要你这样做来规定一个 Unicode 字符:“\x{200B}”(例如在零宽度空格的情况下)
  • 全选,复制并粘贴回 Eclipse
于 2021-06-30T16:07:10.713 回答