Python编程技巧:for-else、*操作、三元表达式与更多

需积分: 9 0 下载量 112 浏览量 更新于2024-09-06 收藏 15KB DOCX 举报
本文档涵盖了Python编程语言中的多个核心概念,包括`for-else`结构、星号(*)和双星号(**)的用法、三元表达式、`with-as`语句、列表推导式、列表索引技巧、lambda函数、yield及生成器和迭代器的使用,以及断言assert的巧妙应用。 1. **for-else**:在Python中,`for`循环可以与`else`子句结合使用。当`for`循环正常执行完毕(即没有遇到`break`语句)时,`else`块的代码将被执行。示例中展示了如何在`for`循环结束后打印"我是else"。 2. **星号(*)和双星号(**)**:星号(*)用于解压元组或列表,双星号(**)用于解压字典。在函数调用中,它们可以用来传递可变数量的参数。例如,星号可以将元组展开为单独的参数,而双星号则将字典键值对展开。 3. **三元表达式**:Python中的三元表达式具有简洁的语法,类似于`条件 ? 表达式1 : 表达式2`,用于根据条件返回不同的结果。在示例中,如果`y`小于0,则输出"y是一个负数",否则输出"y是一个非负数"。 4. **with-as**:`with`关键字用于管理资源的获取和释放,常用于文件操作。在`with`块中,资源在尝试执行的代码块结束后自动关闭,无需手动调用`close()`方法,确保了良好的异常处理。 5. **列表推导式**:列表推导式提供了一种简洁的创建新列表的方式。它可以在一行内完成对原列表的元素进行操作。示例中,将列表`a`中的每个元素平方后生成新的列表。 6. **列表索引操作**:Python列表支持多种索引和切片操作。可以获取指定范围的子列表,如`a[2:4]`获取索引2到3的元素;也可以通过步长获取子列表,如`a[::2]`获取所有偶数索引的元素。 7. **lambda函数**:lambda函数是Python中定义简单匿名函数的方式,通常用于需要短暂、简单的功能。它只能包含一个表达式。示例中创建了一个返回两个参数之和的lambda函数。 8. **yield和生成器**:`yield`关键字用于创建生成器,生成器是一种特殊的迭代器,它可以在运行时生成值,而不是一次性生成所有值。在内存效率上,生成器优于列表。示例中展示了如何创建一个简单的生成器,遍历列表`a`的元素。 9. **装饰器**:装饰器是Python中用于修改或增强函数、类等行为的高级技术。它们允许在不修改原始代码的情况下添加新功能。装饰器通过在定义前加上`@`符号来应用。 10. **断言assert**:断言用于在开发阶段检查程序是否符合预期,通常在条件为真时继续执行,为假时引发`AssertionError`异常。在示例中,`assert`用于检查一个条件,如果条件为假,程序会停止并显示错误信息。 以上知识点是Python编程中的基础且重要的部分,理解和掌握这些将有助于编写更高效、更简洁的代码。