>>> from env_helper import info; info()
页面更新时间: 2020-03-28 08:16:14
操作系统/OS: Linux-4.19.0-8-amd64-x86_64-with-debian-10.3 ;Python: 3.7.3

2.13. sys.exit() 退出程序

要介绍的最后一个控制流概念,是如何终止程序。当程序执行到指令的底部时, 总是会终止。但是,通过调用 sys.exit() 函数,可以让程序终止或退出。因为这个函 数在 sys 模块中,所以必须先导入 sys ,才能使用它。

打开一个新的文件编辑器窗口,输入以下代码。保存为 exitExample.py

import sys

while True:
    print('Type exit to exit.')
    response = input()
    if response == 'exit':
        sys.exit()
print('You typed ' + response + '.')

在IDLE中运行这个程序。该程序有一个无限循环,里面没有 break 语句。结 束该程序的唯一方式,就是用户输入 exit ,导致 sys.exit() 被调用。如果 response 等 于 exit ,程序就会中止。因为 response 变量由 input() 函数赋值,所以用户必须输入 exit,才能停止该程序。

2.13.1. 小结

通过使用求值为 TrueFalse 的表达式(也称为条件),你可以编写程序来决定哪些代码执行,哪些代码跳过。 可以在循环中一遍又一遍地执行代码,只要某个条件求值为 True 。 如果需要跳出循环或回到开始处, breakcontinue 语句很有用。

  • 打印语句:你可使用print语句来打印多个用逗号分隔的值。如果print语句以逗号结尾, 后续print语句将在当前行接着打印。

  • 导入语句:有时候,你不喜欢要导入的函数的名称——可能是因为你已将这个名称用作 他用。在这种情况下,可使用import … as …语句在本地重命名函数。

  • 赋值语句:通过使用奇妙的序列解包和链式赋值,可同时给多个变量赋值;而通过使用 增强赋值,可就地修改变量。

  • 代码块:代码块用于通过缩进将语句编组。代码块可用于条件语句和循环中,还可用于 函数和类定义中(这将在本书后面介绍)。

  • 条件语句:条件语句根据条件(布尔表达式)决定是否执行后续代码块。通过使用if/elif/else,可将多个条件语句组合起来。条件语句的一个变种是条件表达式,如a if b else c。

  • 断言:断言断定某件事(一个布尔表达式)为真,可包含说明为何必须如此的字符串。 如果指定的表达式为假,断言将导致程序停止执行(或引发第8章将介绍的异常)。最好 尽早将错误揪出来,免得它潜藏在程序中,直到带来麻烦。

  • 循环:你可针对序列中的每个元素(如特定范围内的每个数)执行代码块,也可在条件 为真时反复执行代码块。要跳过代码块中余下的代码,直接进入下一次迭代,可使用 continue语句;要跳出循环,可使用break语句。另外,你还可在循环末尾添加一个else 子句,它将在没有执行循环中的任何break语句时执行。

  • 推导:推导并不是语句,而是表达式。它们看起来很像循环,因此我将它们放在循环中 讨论。通过列表推导,可从既有列表创建出新列表,这是通过对列表元素调用函数、剔 除不想要的函数等实现的。推导功能强大,但在很多情况下,使用普通循环和条件语句 也可完成任务,且代码的可读性可能更高。使用类似于列表推导的表达式可创建出字典。

  • pass、del、exec和eval:pass语句什么都不做,但适合用作占位符。del语句用于删除变 量或数据结构的成员,但不能用于删除值。函数exec用于将字符串作为Python程序执行。 函数eval计算用字符串表示的表达式并返回结果。