简单代码却找不到错误(PyS60,但不具体)
我刚开始学Python,现在搞得我很紧张:
L = []
file = urllib.urlopen("http://someurl.com/someText.txt")
line = file.readline()
while line != "" :
L.append(line)
line = file.readline()
appuifw.selection_list(choices=L)
然后我遇到了这个错误:
line = file.readline()
^
SyntaxError: invalid syntax
有没有人知道这是怎么回事?
5 个回答
0
在我的Python解释器(2.6.1版本)中,似乎一切正常。
我想你应该先执行了 import urllib
呢?(如果没有这样做,会出现 NameError
,而不是 SyntaxError
。)
补充:我快速在谷歌上查了一下,发现了这个: http://discussion.forum.nokia.com/forum/showthread.php?t=150563
这个帖子已经有18个月了,但它说PyS60是Python 2.2.2。我机器上没有这个版本,但可以看看这是不是问题所在。
1
显示隐藏字符。我敢打赌,在某一行里可能有个非法字符(比如空字符)藏着,它在你的屏幕上看不见。或者文件的行结束符可能不对。
我通常会用这些方法:
1) 你可能在StackOverflow上输入得没错,试着把这段代码复制回源文件,看看能不能解决问题。有时候很难发现你是不是把一个]放在了应该放)或}的地方。
2) 把所有的代码行都注释掉,然后逐行取消注释,直到语法错误再次出现。如果在你注释掉其他所有行时,语法错误依然存在,那真正的问题就在之前的代码里。
3) 删除有问题的那一行,以及它上下的几行。要一次性删除这些行;你不想让坏字符留在那,因为它可能在你逐行删除的过程中被保留下来了。然后重新输入这些行。不要直接粘贴回来;那样可能会把问题再粘贴回去。
2
重写成
file = urllib.urlopen("http://blabla.com/bla.txt")
lines1 = file.readlines()
for li in lines1:
L.append(li)
index = appuifw.selection_list(choices=L)
现在似乎可以用了。
(还有一些问题,不过我觉得可能是网址的问题)