首次安装Python时,默认设置逐行执行用户的代码输入。但有时我需要编写一次执行多行的程序。在Python中是否有一个设置,我可以将代码执行一次更改为一个块?感谢
>>> if (n/2) * 2 == n:;
print 'Even';
else: print 'Odd'
SyntaxError:语法无效
当我尝试运行上面的代码时,我在ELSE上得到了无效的语法错误
答案 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(idle,eclipse等)执行该脚本。)
python背后的一个想法是更喜欢多行并且目标是统一格式化源代码,所以你试图做的不是pythonic,你不应该把多个语句塞进单行,除非你有充分的理由
答案 3 :(得分:0)
print n % 2 == 0 and 'Even' or 'Odd'
: - )