Python REPL只要完全键入就自动执行每个命令。这就是为什么它被称为“读取评估打印循环”的原因。它接受一个输入,对其进行评估,然后打印结果。
如果你想同时执行两个完整的命令,你可以把一个分号之间,就像这样:
print("one"); print("two")
我说:“完全输入”上面,因为某些命令本身需要多条线路,所以在命令“完全输入”之前,Python必须接受多行输入。三种类型的命令工作如下:流控制命令(def
,while
,if
,for
等,适用于它们下面的几个缩进行),多行表达式(括号内或括号内的计算)或使用反斜杠的语句(\
)以指示它在下一行继续。所以如果你输入下面的任何一个块,Python会在评估之前等待块完全完成。
if 1 + 1 == 2:
print "True"
else:
print "False"
print(
1 + 1
)
print \
1 + 1
您也可以结合这两种策略,并键入是这样的:
print("one"); \
print("two")
Python会等待所有命令键入,然后在运行一次他们俩。但我从来没有见过任何人以这种方式编写代码。
或者,您可以在不同的文本编辑器中一起键入几个命令,然后将它们粘贴到Python REPL中,例如将以下内容复制并粘贴到REPL中(但您会在命令之间打印结果):
print("one")
print("two")
或者,您可能几乎可以准确地获得您最初期望的行为,即使用不同的Python接口。 IPython Notebook是一个不错的选择,或者您可以尝试Spyder或PyCharm编辑器,它们让您选择几行代码并运行它们。
或者,如果您想要一次运行所有脚本的较长脚本,最好的方法是将其输入到文本文件(例如script.py)中,然后告诉python运行它,例如,从系统命令提示符(不是Python解释器)输入python script.py
,或在IDLE编辑器中按F5。
当涉及到python有运行脚本,并在解释器中运行命令(我希望你的书会谈论这个)。看起来你正在使用像IDLE或IPython这样的交互式解释器。这将一次运行一行,除非你使用更复杂的语句(如果为def func)。 – daveydave400
你可以做的最好的事情之一,以获得在这个社区良好的接待(...以及[帮助中心](http://stackoverflow.com/help)给出的其他建议)是使用标题能够以您所问的实际问题的独特方式准确描述您的问题。我试图编辑以获得这种效果。 –
@ AlexanderO'Mara,...嗯。由于另一个问题的答案实际上并非特定于IDLE,我们可能应该编辑它的标题而不是暗示它们是?我可以看到它为什么没有*看起来像*重复到OP,如果它出现在“做这些其他问题回答你的问题?”名单。 –