这篇教程Python基础教程之控制结构详解写得很实用,希望能帮到您。
0. 学习目标Python 是简洁、易学、面向对象的编程语言。它不仅拥有强大的原生数据类型,也提供了简单易用的控制语句。在《Python基础教程》的系列博文中,我们已经介绍了 Python 中的内置原生数据类型,并且也了解了程序如何利用输入、输出语句与用户进行交互。本节的主要目标是介绍 Python 的控制语句,为接下来的学习奠定基础,本文会完整的介绍学习数据结构和算法所需的 Python 基础知识及基本思想,并给出相应的实战示例及解释。 - 理解并掌握 Python 条件语句与循环语句
- 掌握 Python 条件语句与循环语句的复杂嵌套以及列表解析式
1. 代码块与缩进代码块是一组语句,Python 中用于定义代码块的语法对于所有控制结构来说是相同的,可用于满足条件时执行代码( if 语句),也可用于代码多次执行(循环)等。代码块是通过缩进代码(可以使用空格或制表符)来创建的。在Python中,使用冒号 (:) 指出接下来是一个代码块,在同一个代码块中,各行代码的缩进量(一般每级缩进 4 个空格)必须相同: if condition is True: print('this is a block') print('another line of this block')print('escaped the previous block') 在指定函数体和类体时,代码块的原则同样适用。
2. 条件语句以上示例语句都是逐条执行的,但实际应用中让程序选择执行特定的语句块是必备的。这时布尔类型就派上用场了。 用作布尔表达式时,标准值 False 和 None、数值 0、空序列(如空字符串、空元组和空字典等)都被视为假,而其他值均被视为真。这意味着任何 Python 值都可解释为真值,但 True 和 False 为标准真值。在 C 语言中,标准真值为 0 (表示假)和 1 (表示真)。实际上,True 和 False 是 0 和 1 的别名,其作用是完全相同的: >>> bool('')False>>> bool([0])True>>> bool('Hello world')True>>> True == 1True>>> True + 23 程序运行时,Python 会在需要时自动将任意值转换为布尔值,而无需显式地进行转换: # test_bool.pystring_test = 'Hello world'if string_test: print('Automatic conversion ') 以上脚本执行结果如下,表明 Python 执行了自动转换: Automatic conversion
需要注意的是,虽然值转换为真值后可能相等,例如 bool({}) == bool([]) == False ,但本身它们并不相等,即 {} != [] : >>> bool({}) == bool([])True>>> {} == []False
2.1 if 语句条件语句(也称 if 语句)能够有条件地执行代码,如果条件( if 和冒号之间的表达式)为真,就执行后续代码块;如果条件为假,就不执行: if flag == True: flag = Falseprint(flag) 上示 if 语句也称单路分支结构,如果 flag 为 True,则将其变为 False,再打印 flag 值。还有另一种条件结构称为二元分支(也称 if...else 语句): answer = input('Please enter your answer: ')if answer == 'A': print('Right!')else: print('Error!') 在上述例子中,Python 会检查用户输入答案,如果输入为 A,则打印 “Right!”,否则,会执行else 分支打印 “Error!”。 要检查多个条件,可使用 elif,elif 是 else if 的缩写,可以将其理解为包含条件的 else 子句: num = int(input('Please enter a number: ')) if num > 0: print('The number is positive') elif num < 0: print('The number is negative') else: print('The number is zero') 需要注意的是,在使用 elif 时,最后的 else 是必需的,它用来在所有分支条件都不满足的情况下提供默认分支。 上述三种条件结构可以用以下流程图表示: 
综上,我们可以总结出 Python 中,条件语句的最一般形式: if first_condition: first_blockelif second_condition: second_blockelif third_condition: third_blockelse: fourth_block 每个条件都是一个布尔表达式,每个代码块包含一个或多个满足条件时要执行的语句。如果第一个条件为真,则执行第一个代码块,而不会评估其他条件。如果第一个条件失败,则继续判断第二个条件,以此类推。if 语句可以包括任意数量的 elif 子句 (也可以为 0 个),最后一个 else 子句是可选的。
2.2 if 语句的嵌套条件结构支持嵌套,即在 if 语句中调用任意数量的 if 语句: if alcohol < 20: print('Does not constitute drinking behavior!')else: if alcohol > 80: print('Already meet drinking and driving standards!') else: print('Has reached the standard for drunk driving!') 上述程序所表达的逻辑可以用流程图表示: 
2.3 断言为了让程序在错误条件出现时立即中止,Python 还提供了类似 if 语句的关键字:assert,使用此关键字可以要求某些条件必须得到满足。assert 语句类似检查点,当我们知道程序的执行必须满足特定条件,才能正确地运行时,使用assert 语句可以及时终止程序运行,类似网站注册时邮箱格式正确性的检查: >>> mail_1 = 'test123456789@gmail.com'>>> assert mail_1.endswith('.com')>>> mail_2 = 'test123456789@gmail.con'>>> assert mail_2.endswith('.com')Traceback (most recent call last): File "<stdin>", line 1, in <module>AssertionError 为了说明程序终止的原因,可以在 assert 语句后添加说明字符串: >>> assert mail_2.endswith('.com'),' Email must end with .com 'Traceback (most recent call last): File "<stdin>", line 1, in <module>AssertionError: Email must end with .com
3. 循环我们已经学习了如何在条件为真(或假)时执行代码块,但如何重复操作代码块多次呢?例如,打印 1 Python常用工具之音频调整音量 Python机器学习NLP自然语言处理基本操作之命名实例提取 |