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