在Python中执行多行

时间:2010-05-19 07:13:54

标签: python

首次安装Python时,默认设置逐行执行用户的代码输入。但有时我需要编写一次执行多行的程序。在Python中是否有一个设置,我可以将代码执行一次更改为一个块?感谢

>>> if (n/2) * 2 == n:;
        print 'Even';
        else: print 'Odd'

SyntaxError:语法无效

当我尝试运行上面的代码时,我在ELSE上得到了无效的语法错误

4 个答案:

答案 0 :(得分:9)

你的缩进是错误的。试试这个:

>>> if (n/2) * 2 == n:
...     print 'Even'
... else: print 'Odd'

另外,您可能希望将其写在四行:

>>> if (n/2) * 2 == n:
...     print 'Even'
... else:
...     print 'Odd'

甚至只有一行:

>>> print 'Even' if (n/2) * 2 == n else 'Odd'

答案 1 :(得分:1)

解决方案的一个步骤是在if

之后删除分号
if True:; print 'true'; print 'not ok'; # syntax error!

if True: print 'true'; print 'ok'; # ok

你不能在同一行中有一个else因为它不明确:

if True: print 't'; if True: print 'tt; else: ... # <- which if is that else for??

docs中也清楚地说明在else语句开始之前你需要DEDENT

答案 2 :(得分:0)

从python 2.5开始,你可以one line ifs

print ('Even' if n % 2 == 0 else 'Odd')

仍然要回答你的问题,你可以:
1.正确输入代码而不会出现语法错误,并且您的块将作为块执行,无论它们是否跨越多行,即使在交互式shell中也是如此。请参阅dive into python中的教程 2.在脚本中编写代码并使用命令行或某些IDE(idleeclipse等)执行该脚本。)

python背后的一个想法是更喜欢多行并且目标是统一格式化源代码,所以你试图做的不是pythonic,你不应该把多个语句塞进单行,除非你有充分的理由

答案 3 :(得分:0)

print n % 2 == 0 and 'Even' or 'Odd'

: - )