算法学习笔记----Day5(迭代、函数)

今日学习

第一部分:Python

一.迭代
1.支持迭代协议的对象可迭代,即内部有__next__()的方法,能够获取到下一个元素。
例:l.__next__()或next(l)
注:有些可迭代对象本身不具备.__next__()方法,但是使用迭代用具for后,会用iter()方法生成迭代器,即具备__next__()方法。例如列表本身不具备next方法,设l为列表,iter(l) is l返回结果False,可完成验证。
2.range()为内置可迭代对象,需要迭代时会自动调用iter()生成迭代器。
3.zip(目标1,目标2)----实现目标1和2的压缩功能,返回可迭代对象。
4.map(函数,目标)----对目标实现函数的功能,返回可迭代对象。

二.函数
1.定义:def 函数名(参数1,参数2…):,函数内要缩进,调用函数时参数要对应赋值。
2.作用:最小化代码冗余、过程分解
3.作用域:函数内的参数为本地变量,与外部变量无关,只作用于代码缩进范围内。如果在函数内定义全局变量,需要加global前缀,如:global x。
算法学习笔记----Day5(迭代、函数)
4.自定义的函数名不要与系统函数或其他已存在的函数重名,会覆盖原函数。
5.参数传递:
1).不可变类型:传递副本,函数内操作不影响原始值,如数值、字符串、元组等。
2).可变类型:传递地址引用,函数内操作可能影响原始值,如列表、字典等。若不想改变原实参的值,调用函数时需要传递参数的副本,例如列表中的.copy()或切片。

备注:

1.enclousure:封装