在Python中执行多行代码
当你第一次安装Python时,默认的设置是逐行执行用户输入的代码。但有时候我需要写一些可以一次执行多行代码的程序。请问在Python中有没有什么设置可以让我一次执行一整块代码呢?
>>> if (n/2) * 2 == n:;
print 'Even';
else: print 'Odd'
错误信息:
语法错误:无效的语法
当我尝试运行上面的代码时,在else那一行出现了无效的语法错误。
4 个回答
0
自从 Python 2.5 以来,你可以用一行代码来写条件判断
print ('Even' if n % 2 == 0 else 'Odd')
不过,针对你的问题,你可以选择以下两种方式:
1. 正确输入代码,确保没有语法错误,这样你的代码块就会被当作一个整体执行,无论它们是否跨越多行,即使在交互式命令行中也是如此。你可以查看Dive Into Python的教程。
2. 在脚本中编写代码,然后通过命令行或某个集成开发环境(IDE)来执行这个脚本,比如IDLE、Eclipse等。
Python 的一个理念是更倾向于使用多行代码,并追求源代码的统一格式。所以你现在尝试的方式并不符合 Python 的风格,除非你有很好的理由,不然不应该把多个语句挤在一行里。
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??
文档中也明确说明,在else
语句之前需要有一个DEDENT
,才能开始else
。
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'