2016-08-24 44 views
1

我刚刚拿到了一本关于编程的基本书籍。编码语言是Python,我只试过了几个小时,但我已经卡住了,因为我无法弄清楚如何编写多行代码。例如,当我编写print(“one”)然后按回车键时,它会运行它并打印单词one。我怎样才能让它在下面的一行打印单词,一个,然后是两个单词?另外,当我点击标签时,它会移动超过4个空格,等等。我不知道如何让它不运行第一个命令,只需在下一行给我'>>>'即可。所以我想我问的是:我需要使用什么按键来获得类似的东西:输入多行代码以便稍后在Python中运行REPL

>>> print("one") 
>>> print("two") 

非常感谢!你可能想尝试

(对不起,我这样一个基本的问题,但我在这一个完全混乱。)

+1

当涉及到python有运行脚本,并在解释器中运行命令(我希望你的书会谈论这个)。看起来你正在使用像IDLE或IPython这样的交互式解释器。这将一次运行一行,除非你使用更复杂的语句(如果为def func)。 – daveydave400

+0

你可以做的最好的事情之一,以获得在这个社区良好的接待(...以及[帮助中心](http://stackoverflow.com/help)给出的其他建议)是使用标题能够以您所问的实际问题的独特方式准确描述您的问题。我试图编辑以获得这种效果。 –

+0

@ AlexanderO'Mara,...嗯。由于另一个问题的答案实际上并非特定于IDLE,我们可能应该编辑它的标题而不是暗示它们是?我可以看到它为什么没有*看起来像*重复到OP,如果它出现在“做这些其他问题回答你的问题?”名单。 –

回答

1

的一件事是在文件中编写代码,说learning.py,然后运行该文件在与python learning.py的命令行上。

2

Python REPL只要完全键入就自动执行每个命令。这就是为什么它被称为“读取评估打印循环”的原因。它接受一个输入,对其进行评估,然后打印结果。

如果你想同时执行两个完整的命令,你可以把一个分号之间,就像这样:

print("one"); print("two") 

我说:“完全输入”上面,因为某些命令本身需要多条线路,所以在命令“完全输入”之前,Python必须接受多行输入。三种类型的命令工作如下:流控制命令(def,whileiffor等,适用于它们下面的几个缩进行),多行表达式(括号内或括号内的计算)或使用反斜杠的语句(\)以指示它在下一行继续。所以如果你输入下面的任何一个块,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。

0

在python中使用“控制台”感觉获得更好的多行命令支持的最好方法是使用ipython qtconsole或Jupyter qtconsole,它现在称为:http://jupyter.org/qtconsole/stable/。使用qtconsole时,即使不是复杂块,按下Ctrl-Enter也会延迟命令运行。您可以多次按Ctrl-Enter,然后按Enter键全部运行它们。然后点击箭头将再次调出整个块进行编辑,不像普通的ipython控制台那样干净地缩进。

注意:这是而不是 ipython笔记本,也不是普通的ipython控制台,而是使用相同内核的一个单独的东西。 qtconsole还有其他一些很好的功能,比如与终端相比,更好的语法高亮和内联绘图功能。

+0

Downvoter,care解释? –

相关问题