如何在 Python 解释器中编写多行代码?

如何在 Python 解释器中编写多行代码?

我在终端中编写 Python 代码时遇到问题。我只是在学习基础知识,所以不需要创建 .py 文件。

在终端中,我可以在 Python 解释器中运行一行代码,但是如何编写多行代码?

显然,如果我按下回车键,它会输入命令但不会继续往下走。

我只想在终端中测试以下内容:

my_age = 35
my_eyes = 'Blue'
print "my age is %d and my eye color is %s" % (my_age, my_eyes)

答案1

添加尾部反斜杠 ( \)

诀窍是——类似于你在 中所做的bash——添加尾部反斜杠。例如,如果我想打印1

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>> 

如果你写了一个\,Python 会提示你...(续行)在下一行输入代码,可以这么说。

附注:这是当你创建函数或类定义时自动发生的事情,也就是你真正需要换行,所以它从来没有真正好用,至少我不知道有。换句话说,Python 足够聪明,可以意识到当你输入新的函数定义或其他类似构造(例如if:)时需要续行。在这些自动情况下,请注意,你需要使用 输入一个空行\来告诉 Python 你已完成。

对于其他所有内容,您需要一行接一行地编写。解释器的工作方式是,它会解释您输入的每一行。不多也不少。它只会在看到换行符时“采取行动”,从而告诉解释器执行您输入的内容。单个反斜杠将阻止解释器接收换行符(即它不知道您实际上按下了Enter),但它最终会收到一个换行符。

Python 的解释器有高级功能当您使用 GNU readline 时,例如 Emacs 或 vi 样式的键绑定在一行内导航(例如Ctrl-A)。但是,这些仅在当前一行中有效。历史记录也在那里,只需尝试按 即可

如果我想一遍又一遍地运行复杂的线条该怎么办?

如果您想一次执行多行代码,您可能需要使用适当的源文件。

或者,使用Jupyter 笔记本,它提供了一种使用内置解释器创建 Python 代码的出色交互式方式。您可以像在源代码编辑器中一样编写代码,但可以选择将哪些行一起解释。然后,您可以有选择地只运行部分代码。最好的方法是尝试看看这是否适合您的工作流程。

答案2

如何使用;\?分号表示命令结束,反斜杠表示继续下一行。例如,python在命令行输入以进入 Python 解释器,然后

>>> x=0 ;\
... print(x) ;\
... x=4 ;\
... print(x)

应该输出

0
4

答案3

我只是在看你得到的答案。我继续尝试放入不同的符号。我终于找到了正确的语法来写它。尝试以下

print("more string") ; print(3)

这将给你结果

more string

3

没有任何错误

我刚刚用了“;”让它写在另一行

我希望我的回答能帮助你

答案4

我刚刚在 shell 提示符下输入了以下内容,它工作得很好:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> my_age = 35
>>> my_eyes = 'Blue'
>>> print "my age is %d and my eye color is %s" % (my_age, my_eyes)
my age is 35 and my eye color is Blue
>>> 

在交互式 Python 解释器中输入多行代码的方法就是在交互式 Python 解释器中输入多行代码。我认为这足以满足您的目的。

确实,每行代码后都会出现一个新的提示,这意味着如果两行代码产生输出,则输出将被提示分隔。我猜这就是你担心的,尽管你问题中的例子并没有表明这一点:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "first line"
first line
>>> print "second line"
second line
>>> 

如果这是个问题,您可以将多个语句括在一个(正确缩进的!)if语句中:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> if 1:
...     print "first line"
...     print "second line"
... 
first line
second line
>>> 

(我建议,即使它没有回答你的问题,如果你编写的代码足够复杂,那么你应该编写脚本。也许自从你发布这个问题以来的一年半里你已经开始这样做了。)

相关内容