Python基础:函数,迭代器

函数:实现了一些功能的代码集合

如何定义一个函数:

def 函数名():

函数体

函数名() #调用函数

例: 求和的函数:

def sum(参数):
    num = 0
    for i in range(参数)
        num += i
        return num            #这是返回给调用者的一个结果
        print(num)             #这是函数体内输出的,外面调用的看不见,也使用不了这个值

函数的生命周期: 调用的时候到 函数执行完毕,完毕之后就销毁了

根据用户的需求来确定求和范围(传参)
def sum(a):
     num = 0
     for i in range(a+1):
        num += i
     return num

aa = sum(50)
print(aa)

传入多个参数的时候,会按照位置一一对应

全局变量和局部变量:

函数中一般都是局部变量,只能在函数中使用

在函数外面的就是全局变量,只要定义了,后面都可以使用

函数中如果使用全局变量,在前面添加global(如果定义了,在函数里修改变量会修改全局变量的值)

总结:函数的语法

传参

全局,局部变量

将函数导入其他模块使用

传参: 可变类型和不可变类型

不可变类型:

创建一个数字5,然后让变量指向5

修改变量的值,就是重新创建了一个对象,然后让变量指向了新的对象

a = 5 b = 5

a,b的id是一样的

可变数据类型:

指的是里面的数据是可变的

修改数据之后,数据id不会变

首先:在内存中创建了一个对象10,然后将var1指向10

然后:当变量var1作为参数传入函数的时候,形参就是指向var1指向的位置10

如果在函数中需要修改参数,那么就是创建新的对象,然后修改形参的指向

注意:将可变数据类型传入函数后,如果对其修改后会将源数据修改

相当于操作了一个全局变量

参数: 必须参数 关键字参数 默认值参数 不定长参数

1.必须参数: 必须传参,而且参数的位置和数据类型要求是一一对应的

缺点:必须传参 参数个数一个都不能少 位置要一一对应

2.关键字参数: 位置可以不用一一对应,但是还是不可以少传

3.默认值参数: 形参直接赋值,实参依然可以传入,覆盖形参的值

实参可以少传,或者不传,或者使用关键字改变顺序传

4.不定长参数:

*加名字:接收多余的参数

匿名函数: lambda

匿名函数后面的表达式会自动return一个值

注意:匿名函数只能返回一个表达式,如果需要返回多个表达式的值,需要将他添加到:集合/列表/元组中

迭代器: iter() next()

li = [1,8,9,5,4]

创建一个可迭代的对象:

i_li = iter(li)

next(i_li) 取值:一个一个的取出来,可以记住上一次取值的位置

print(next(i_li))

print(next(i_li))

print(next(i_li))

多维列表:

li = [3,5,8,7,[3,5,8,[3,5,8,7,6,4],7,6,4],6,4]

输出第三个集合中的7:

print(li[4][3][3])

数据类型的转换:

不能转换成字典dict

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值