终端中的Python:如何表示for循环的结束?

时间:2017-03-08 20:51:27

标签: python terminal

说我想通过0打印9

我输入for i in range(10): print(i),按输入,终端显示...,等待进一步的陈述。

所以我必须再次按输入才能打印数字。

>>> for i in range(10): print(i)
...

如何在不必按两次输入的情况下打印数字?

5 个答案:

答案 0 :(得分:11)

只需键入两个返回并继续。但是,既然你问,这只需要一个 Enter

exec("for i in range(10): print(i)")

答案 1 :(得分:0)

您可以使用Shift + Enter结束该函数或循环,该函数或循环将继续下一行:

enter image description here

答案 2 :(得分:0)

将for循环转换为所谓的 list理解力(您不需要eval / exec并将整个内容包装为当前字符串最佳答案建议):

In [1]: [i for i in range(3)]
Out[1]: [0, 1, 2]

如果要多行显示,也可以保留print()语句,但是返回值(None)将放入返回的数组中,因此您将获得以下信息:

In [2]: [print(i) for i in range(3)]
0
1
2
Out[2]: [None, None, None]

要隐藏该最终输出行,您可以add a semicolon

In [3]: [print(i) for i in range(3)];
0
1
2

ipython3太多了,但也许更有用的是,命令行用法呢?您无法执行python3 -c 'import sys; for line in sys.stdin: print(line)',但是您可以 使用列表推导:

$ python3 -c '[print(i) for i in range(3)]'
0
1
2

因此,如果您想在每行上运行一些python:

$ cat inputfile
two
examples
$ cat inputfile | python3 -c 'import sys; [print(line.strip().upper()) for line in sys.stdin]'
TWO
EXAMPLES

(您可以将cat infile |替换为<infile,但这对于不熟悉Bash语法的人来说似乎更容易实现,而熟悉的人可以轻松地替换它。)

答案 3 :(得分:0)

你可以在不使用 exec() 的情况下执行 for 语句,方法是按 Enter 转到下一行,然后按 ctrl + d

答案 4 :(得分:-1)

“ alt + enter” 我在ipython中工作,面临与您相同的问题。在尝试了键盘上的各种组合后,这一组合终于奏效了