python中的循环嵌套、函数

本文深入探讨了Python中的循环嵌套、函数定义与调用、参数传递及返回值等核心概念,同时介绍了函数注释、调试工具的使用,以及函数嵌套调用和模块导入的方法。

一.循环嵌套

1.while嵌套循环格式0
定义计数器1
while 条件1 :
执行满足条件1的代码
定义计数器2
while 条件2 :
执行满足条件2的代码
计数器2+1
计数器1+1

2.end可以代替换行(print("")函数在python中默认换行)
print(“nihao” ,end=""):打印的时候不换行
print(“nihao” ,end="-----"):打印内容之间有-
print(“nihao” ,end="\n"):内容打印完换行
print(“nihao” ,end="\t"):内容打印完垂直对齐
3.\t:制表符(让文本内容垂直方向对齐)
\n:换行符

二.函数:具有独立功能的代码块

1.被调用的函数模块文件名不能以数字开头
2.函数的定义和调用
(1)定义
def 函数名(): (函数名的命名符合标识符的命名规则)
函数封装的代码(函数体)
(2)调用
函数名()
3.函数的特点
函数不调用,不执行。
只有调用函数的时候,之前定义的函数才会被执行。
函数调用完成之后,会重新回到程序里面,继续执行之后的代码。
函数调用不能放到定义函数之前。

4.pycharm调试工具
F8:可以单步执行,把函数当做一条代码来执行
F7:可以单步执行,对整个代码(包括函数)一步一步执行
5.函数注释
连续的三对引号("""" “”"")
函数的定义部分应该和其他代码保留两个空行(包括注释)
6.函数参数
def 函数名(参数1,参数2): (参数可以是多个,中间用逗号隔开)
函数封装的代码块(函数体)
7.实参和形参
(1)实参:形式参数(用来接收参数,在函数的内部作为变量使用)
(2)形参:实际参与运算(传递给形参参与运算)
8.函数的返回值
def 函数名(形参1,形参2):
函数封装的代码(函数体)
return 结果(return后的代码不会被执行)

结果2 = 函数名(实参1,实参2)

9.return、break、continue的区别

10.函数的嵌套调用
格式:
def 函数名1(参数1,参数2):
函数体1的代码

def 函数名2(参数1,参数2):
    函数体2的代码
    函数名1(参数1,参数2)    (嵌套调用函数1)

函数名2( 实参1,实参2 )

11.模块中的函数
(1)模块:以.py结尾的文件
(2)使用import来导入模块
格式:
import 模块名 (模块名符合标识符的规则)
模块名.函数名
12.以.pyc结尾的文件
.pyc文件:是pycharm解析器将模块(源代码)编译成电脑能识别的二进制文件。

### 函数嵌套循环的最佳实践 在Python中,函数内的嵌套循环可以用于处理复杂的数据结构或执行多层逻辑操作。为了保持代码的清晰度效率,在设计这样的程序时应遵循一些最佳实践。 #### 使用辅助函数简化逻辑 当遇到复杂的嵌套层次时,可以通过定义额外的帮助函数来分解大任务成更小的部分[^2]。这不仅有助于减少单个函数中的嵌套深度,还提高了代码模块化程度,使得各个部分更容易测试理解。 #### 应用生成器与迭代器提升性能 对于涉及大量数据遍历的情况,考虑采用生成器表达式代替传统的列表推导式或其他形式的大规模内存占用型集合构建方式。这样可以在不影响功能的前提下节省资源并加快执行速度。 #### 合理利用缩进来增强可读性 尽管技术上允许无限级别的嵌套,但从实际开发角度看,超过三层以上的嵌套往往会让代码难以阅读。因此建议通过调整算法思路或者重构现有流程以控制合理的缩进范围[^3]。 以下是基于上述原则的一个具体例子: ```python def process_data(data_matrix): results = [] def helper(row_index, col_values): """Helper function to handle each row.""" processed_row = [value * 2 for value in col_values] # 假设这里是对列值做一些简单变换 # 如果有更多子任务,则继续调用其他帮助者函数... return processed_row for index, columns in enumerate(data_matrix): # 外部循环负责行级操作 transformed_columns = helper(index, columns) # 调用辅助函数完成特定工作 results.append(transformed_columns) return results ``` 在这个案例里,`process_data()` 主要承担起协调不同组件间交互的角色;而具体的业务细节则交由 `helper()` 来实现。这样做既降低了主干路径上的复杂度又便于后续扩展新特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值