在Python中执行多行代码

1 投票
4 回答
6696 浏览
提问于 2025-04-15 22:53

当你第一次安装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)来执行这个脚本,比如IDLEEclipse等。

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'

撰写回答