python - 输入稍后在 Python REPL 中运行的多行代码

标签 python

我今天刚刚拿起一本关于编程的基础书籍。编码语言是Python,我只尝试了几个小时,但我已经陷入困境,因为我不知道如何编写多行代码。例如,当我编写 print("one") 然后按 Enter 键时,它只是运行它并打印单词“一”。我怎样才能让它在下面的行上打印单词“一”,然后打印单词“二”?另外,当我点击 Tab 时,它只会移动 4 个空格左右。我不知道如何让它不运行第一个命令,而只是在下一行给我“>>>”。所以我想我要问的是:我需要使用什么击键才能得到类似的东西:

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

非常感谢!

(抱歉问了这么基本的问题,但我对此完全困惑。)

最佳答案

Python REPL 在输入完整后立即自动执行每个命令。这就是为什么它被称为“读取-评估-打印循环”。它接受一个输入,对其进行评估,然后打印结果。

如果你想同时执行两个完整的命令,可以在它们之间加一个分号,如下所示:

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

上面我说“完全输入”,是因为有些命令本来就需要多行,所以Python必须先接受几行输入,然后命令才“完全输入”。三种类型的命令是这样工作的:流程控制命令(defwhileiffor 等.,适用于其下方的多条缩进行)、多行表达式(圆括号或方括号内的计算)或在行末尾使用反斜杠 (\) 表示继续的语句在下一行。因此,如果您输入下面的任何 block ,Python 将等到该 block 完全完成后再对其进行评估。

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 接口(interface)来获得几乎完全符合您最初期望的行为。 IPython Notebook是一个不错的选择,或者您可以尝试 Spyder 或 PyCharm 编辑器,它们可以让您选择几行代码并运行它们。

或者,如果您有一个较长的脚本想要一次性运行,最好的选择是将其键入文本文件(例如 script.py),然后告诉 python 运行它,例如,从系统命令提示符(不是 Python 解释器)键入 python script.py,或者在 IDLE 编辑器中按 F5。

关于python - 输入稍后在 Python REPL 中运行的多行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39113306/

相关文章:

python - 我如何使用 urllib3 发布 XML

python - 即使条件不成立,列表值也会在 if 语句内更新

python - numpy:用于数组划分的简明条件语法

python - 向 odoo many2many 字段添加额外的字段

python - Python 中的简单 "if"语句

python - 输出不平衡时的神经网络回归

python - 0x88 棋盘表示

python - 带参数和不带参数的 super() 有什么区别?

python - Python 类元信息中 __init__ 函数的类型提示

python - 如何阻止非数字输入导致 Python 程序崩溃?