Python:期待以下之一:<newline> </newline>

时间:2013-11-09 16:11:13

标签: python api

我写了

 # -*- 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" ...     ";" ...     "," ...

你看到了问题吗?

3 个答案:

答案 0 :(得分:8)

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

print("test")

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

当它是由虚假的、不可见的 Unicode 字符(例如“零宽度空格”或“控件”)引起的时,它不可避免地会突然出现,并且无法“正确放置”。

>

您可能认为将书中的文本复制到某种简单的文本编辑器应用程序可能会自动“清理”文本,以便继续复制粘贴,但在我谦虚(和苦涩)的情况下,通常情况并非如此体验。

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

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

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

  • 勾选“正则表达式”
  • 将其放入 Find: "\u200B"(例如,在零宽度空间的情况下)

或者你可以使用 Notepad++:

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