【发布时间】:2011-10-24 22:09:27
【问题描述】:
我是 Python 新手,目前正在学习控制流命令,如 if、else 等。
if 语句工作正常,但是当我编写else 或elif 命令时,解释器给了我一个语法错误。我使用的是 Python 3.2.1,问题出在它的本机解释器和 IDLE 中。
我正在按照 'A Byte Of Python' 书中的说明进行操作。如您所见,elif 和 else 给出了无效语法。
>> number=23
>> guess = input('Enter a number : ')
>> if guess == number:
>> print('Congratulations! You guessed it.')
>> elif guess < number:
**( It is giving me 'Invalid Syntax')**
>> else:
**( It is also giving me 'Invalid syntax')**
为什么会这样?我在 IDLE 和交互式 python 中都遇到了问题。我希望语法是正确的。
【问题讨论】:
-
语法对我来说是正确的。您是在交互式 Python shell 中输入此内容,还是将其保存在文件中?您可以粘贴未修改的脚本或交互式会话记录吗?
-
elif/else 是空的吗?如果是 sou,请添加
pass。 -
您能否粘贴您的 REPL 会话的 实际 完整输出?如果您不将实际输出替换为“(It is given in 'Invalid Syntax')”之类的内容,人们会更容易看到您的问题。
-
请注意,guess 将是
str()类型的实例,而 number 是int()类型的实例。根据您的 Python 版本,将两者与除等式或不等式运算符之外的任何操作进行比较时,可能会或可能不会被解释为类型不安全的操作。
标签: python