在If-else中使用“:”的Python 3.3.2语法错误

时间:2013-08-02 09:47:49

标签: python python-3.3 python-idle

>>> x = 15
if (x/2)*2 == x:
    print ('Even')
    else:
    print ('Odd')

SyntaxError: multiple statements found while compiling a single statement
>>> x = 15 if (x/2)*2 == x:
    print ('Even')
    else:
    print ('Odd')

SyntaxError: invalid syntax 

3 个答案:

答案 0 :(得分:1)

你不能在python的一行中写几个语句,写

x = 15 
if (x/2)*2 == x: 
   print ('Even') 
else: 
    print ('Odd')

这里:

enter image description here

得到了

enter image description here

答案 1 :(得分:1)

如果真的希望将其编译为单个语句,you would need to have a clause for the odd result

x = 15
result = 'Even' if (x/2)*2 == x else 'Odd'; print(result)

但我不建议这样做,因为它不必要地混淆。

答案 2 :(得分:1)

在交互式解释器中,您只能一次执行单个语句。但是你试图一次执行整个代码块:

>>> x = 15
if (x/2)*2 == x:
    print ('Even')
else:
    print ('Odd')

>>>表示解释器提示)

但是对于Python来说,这是两件事。首先是变量赋值,然后是if / else构造。所以你必须这样做:

>>> x = 15
>>> if (x/2)*2 == x:
    print ('Even')
else:
    print ('Odd')

基本上,首先单独运行x = 15