syntax error in python:
我正在学习python。 它在此脚本中提供语法错误。 我无法弄明白。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import exceptions
class FOUND(Exception): pass
x = [1,2,3,4,56,73,29,35,12,32,63,12,76,75,89]
while True:
try:
test = int(raw_input('Enter integer to be checked in list:'))
count = -1
for y in x:
count += 1
if y == test:
raise FOUND
except ValueError as e:
print"Not a valid integer (%s)"%(e)
except FOUND:
print"Found (%d) at (%d)"%(test,count)
else:
print"Not found ,Appending (%d) to list at location (%d)"%(test,count+1)
x.append(test)
finally:
print"The List:"
print x
print"" |
语法无效,并突出显示此行中的结束双引号:print"Not a valid integer (%s)"%(e)
-
什么是错误?
-
你正在使用python-2.x代码与py3k解释器。此外,改变这样的问题使得已经回答的人看起来像完全白痴。
-
我正在使用py3k解释器
-
@pecker:好吗?如果你知道你正在使用什么解释器,为什么不相应地修改你的代码?它是基本代码理解中的某种练习吗?
-
@SilentGhost:是的,我现在正在这样做。到目前为止,我不知道python3和python2.x有变化。我刚刚安装了python3解释器,认为我使用的是过时的2.x版本。 Python不向后兼容。什么样的恶梦!
-
@pecker的记录,暂时留在2.x系列是完全可以接受的。对于不依赖于第三方库的新项目,Python 3k是一个好主意,否则2.x更有可能支持您需要的东西,并且在Google中可以找到更多用户创建的文档
-
@pecker:"Python不向后兼容。多么噩梦"什么?这怎么是一场噩梦。 Python网站上充满了缺乏向后兼容性的信息。请阅读python.org/download/releases/3.1.2和python.org/dev/peps/pep-3000和docs.python.org/release/3.0.1/whatsnew/3.0.html。
没有括号的print来自python 2,如果你使用的是python 3,则需要使用print()。
您不能格式化异常,因为%d - %d是整数。
尝试except ValueError as e:,您使用的旧语法在Python 3中无效。
-
现在它再次抛出无效语法,但突出显示print"Not a valid integer (%d)"%(e)的结束引用
-
@pecker:你正在使用python-2.x代码和py3k解释器。 我可以告诉你在修复这个错误之后会抛出哪个错误。
-
如果您确实在使用python 3,则print是一个函数,需要像print("Not a valid integer (%d)" % e)或更好的print("Not a valid integer(", int(e),")")一样调用(不确定%语法是否仍然可以在py3k中运行)
你的代码(剪切和粘贴,没有改动)对我来说很好(Python 2.5)。
顺便说一下,你的test = int ...行应该在try之后(并且适当地缩进)并且"not a valid integer(%d)"中的%d应该是%s。
Python 3的异常处理语法已经更改:确保您所遵循的任何帮助/教程都适用于您安装的相同主要版本的Python。 从2.x到3.x有显着的变化。
在class ...和x = ...之间需要一个空行
-
语法无效,并在此行中突出显示逗号:'除了ValueError,e:'
-
当剪切并粘贴到Python文件中时,脚本在没有空行的情况下工作。 如果您将其键入交互式提示,则需要一个空行。