【问题标题】:Python in terminal: how to signify end of for loop?终端中的 Python:如何表示 for 循环的结束?
【发布时间】:2017-07-29 15:10:17
【问题描述】:

假设我想打印09

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

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

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

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

【问题讨论】:

  • 您是在问如何在不按enter 执行命令的情况下执行命令...?
  • @crookedleaf 不...所以我输入for i in range(10): print(i),回车,它会给出... 等待更多语句。所以我必须按两次回车。
  • 那你到底在问什么?
  • 你想要[i for i in range(10)]这样的东西吗?
  • @SamShen 这正是终端的工作方式,因为您试图在一行上执行多行命令。它正在等待确认您已完成。

标签: python terminal


【解决方案1】:

只需输入两个返回值并继续。不过既然你问了,这只需要一个Enter

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我认为这不适用于与 iPython 终端不同的常规 python 终端
    【解决方案3】:

    您可以使用 Shift+Enter 来结束继续下一行的函数或循环,如下所示:

    【讨论】:

      【解决方案4】:

      将您的 for 循环转换为所谓的 列表理解(您不需要 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 语法的人来说似乎更容易理解,熟悉的人可以轻松替换它。)

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-30
          • 2015-08-12
          • 2015-05-08
          • 1970-01-01
          相关资源
          最近更新 更多