【问题标题】:Best way to quit a python programme?退出python程序的最佳方法?
【发布时间】:2018-04-21 23:20:49
【问题描述】:

我觉得自己像个白痴一样问这个问题,但是quit() 是终止 python 程序的最佳方式吗?或者有没有更好的方法可以在真循环时逐渐停止,而不是立即停止?再一次,我觉得自己像个白痴一样问这个问题,但我只是好奇。

【问题讨论】:

  • 你有没有创建过资源/打开过的文件等?
  • 在这种情况下,它正在读取一个文本文件。
  • @Charlie “在 True 循环时逐渐停止”是什么意思。请详细说明。
  • @BOi 我不知道,我今年 13 岁,但在编码方面仍然是个白痴。我只是想尽可能多地学习。
  • 好吧@Charlie 欢迎编码。如果你想学习,你就不是白痴。我只是想让你澄清你的问题,这样我就可以帮助你解决你想要的问题..

标签: python exit


【解决方案1】:

我不知道你为什么不想使用quit(),但你可以使用这个:

import sys
sys.exit()

或者这个:

raise SystemExit(0)

要停止 while 循环,您可以使用 break 语句。例如:

while True:
    if True:
        do something  #pseudocode
    else:
        break

一旦else 语句被python 读取,break 语句将立即停止while 循环

【讨论】:

    【解决方案2】:

    您可以使用break 语句来停止while 循环。例如:

    while True:
        if True:
            <do something>
        else:
            break
    

    【讨论】:

      【解决方案3】:

      一般来说,结束 Python 程序的最好方法就是让代码运行完成。例如,在文件中查找“hello”的脚本可能如下所示:

      # import whatever other modules you want to use
      import some_module
      
      # define functions you will use
      def check_file(filename, phrase):
          with open filename as f:
              while True:
                  # using a while loop, but you might prefer a for loop
                  line = f.readline()
                  if not f:
                      # got to end of file without finding anything
                      found = False
                      break
                  elif phrase in line:
                      found = True
                      break
          # note: the break commands will exit the loop, then the function will return
          return found
      
      # define the code to run if you call this script on its own
      # rather than importing it as a module
      if __name__ == '__main__':
          if check_file("myfile.txt", "hello"):
              print("found 'hello' in myfile.txt")
          else:
              print("'hello' is not in myfile.txt")
      
      # there's no more code to run here, so the script will end
      # -- no need to call quit() or sys.exit()
      

      请注意,一旦找到该短语或搜索到文件末尾,代码将跳出循环,然后脚本的其余部分将运行。最终,脚本将用完代码来运行,Python 将退出或返回交互式命令行。

      【讨论】:

      • 我相信 OP 想要使用他的命令终止程序。我很确定他知道让程序运行完成很快就会结束程序。
      • 感谢您竭尽全力发布此内容,但我已经知道允许程序运行完成最终会使其停止。但再次感谢。
      • 在顶部写着def check_file(filename, phrase):“短语”是什么意思?
      • @Charlie,“phrase”变量只保存您在文件中搜索的文本。它也可以称为“单词”或“文本”。顺便说一句,如果您必须直接从程序内部退出,最好的选择可能是引发异常(可能是 SystemExit)。如果您没有任何重要的未保存数据或未完成的工作,这不会造成任何伤害。它只会结束你的程序(如果它处于循环中间,计算机不会介意)。
      • @BOi 我想说的是,您几乎总是可以(并且应该)安排您的代码,使其在正常情况下运行到最后。因此,如果问题是,“退出 Python 程序的最佳方式是什么,即使它处于循环中?”那么答案是“设置逻辑,以便您的程序在工作完成时结束。”
      【解决方案4】:

      如果您想停止 while True 循环,您可以将变量设置为 True 和 False,如果您的循环必须在特定数量的循环后停止,您甚至可以使用计数器。

      例如

      x = 0
      y = True
      while y == True:
          <do something>
          x = x + 1
          if x == 9:
              y = False
      

      只是一个简单的例子,你可以做什么,而不使用 while 循环(基本上是我在上面写的,然后在 1 行中。)

      x = 10
      for i in range(x):
          <do something>
      

      要停止程序,我通常使用exit()break

      如果没有,我希望这对您有所帮助;请发表评论,我会尽力帮助你!

      【讨论】:

      • 嘿,我不太明白你发送的第二段代码。 x = 10 for i in range(x): &lt;do something&gt;i 的字母是从哪里来的,还是只是一个占位符?
      • i是正在创建的变量,它确实是一个占位符,也可以写成for charlies in range(x):。输入for charlies in range(x): print(charlies) 试试看。它将输出一个从 0 到 9 的计数器(python 从 0 而不是 1 开始计数)
      • 正是@DevOps 所说的。它创建了一个名为 i 的变量,可用于遍历 x 的范围。
      • 随时!继续学习并记住,我们都是从你开始的地方开始的!
      猜你喜欢
      • 2012-03-20
      • 1970-01-01
      • 2013-04-21
      • 2014-12-11
      • 2016-11-12
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多