欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python基础笔记4(函数,可变与不可变对象,局部与全局变量,参数的传递)

程序员文章站 2024-02-17 21:49:28
...

一、函数

又叫方法,是用代码编写的能实现某一功能的代码块

定义:

def 函数名(形参列表):
		函数体
		return 返回值
def my_Sum(a,b):
    sum = a + b
    return sum

调用

语法一:
函数名(实参)

A= my_Sum(1,2)
print(A)

语法二:(推荐)
为防止不同类,包中相同函数名造成调用混乱,使用判断条件

if __name__ == ''__main__'':
		函数名(实参)
if __name__ =='__main__':
    B = my_Sum(2,3)
    print(B)

python基础笔记4(函数,可变与不可变对象,局部与全局变量,参数的传递)

return返回值

return:函数中遇到return时直接跳出函数,后面的语句不会执行。
当函数没有return时,默认返回None

当返回值为多个数据时,返回值用 逗号 隔开
若接收是对象只有一个时,返回值会以元组的形式返回;
若以相同长度对象接收时,返回值会依次对应赋值,接收对象要用 逗号 隔开

def my_Sum(a,b):
    sum = a + b
    DEL = a*b
    return sum,DEL

A,DEL= my_Sum(1,2)
print(A)
print(DEL)
print(A,DEL)

python基础笔记4(函数,可变与不可变对象,局部与全局变量,参数的传递)

二、可变对象与不可变对象

不可变对象

数值型,字符型,元组,
修改对象的值之后,对象的前后的内存地址发生改变

a = '1234'
print(id(a))
a = '1a34'
print(id(a))

python基础笔记4(函数,可变与不可变对象,局部与全局变量,参数的传递)

可变对象

列表,集合,字典
修改对象的值之后,对象的前后内存地址不会发生改变,还是指向像相同的内存地址

id()函数查看数据的内存地址

a = [1,2]
print(a)
print(id(a))
a.append(3)
print(a)
print(id(a))

python基础笔记4(函数,可变与不可变对象,局部与全局变量,参数的传递)

不可变对象当作参数传入函数中,外面的对象本身不变;
可变对象当作参数传入函数中,外面的对象会跟着改变;

三、局部变量与全局变量

全局变量:定义在函数外部,作用于整个代码
局部变量:定义在函数内部,值作用于函数内部

关键字global,声明局部变量为全局变量

a = 1
print(a)
def sda():
    global a
    a = 2
sda()# 调用函数
print(a)# 再次输出a

python基础笔记4(函数,可变与不可变对象,局部与全局变量,参数的传递)

四、参数的传递

参数传递四种方式

参数的传递
必须参数
关键字参数
默认参数
不定长参数

1.必须参数

实参的个数、顺序、类型、与形参必须一致

2.关键字参数

函数调用时用形参来赋值带入,此时实参的顺序与形参的顺序可以不一致

def sda(a,b):
    sum = a+b
    return sum

print(sda(b = 1,a = 2))

python基础笔记4(函数,可变与不可变对象,局部与全局变量,参数的传递)

3.默认参数

在函数定义时候给的初始值,不影响调用时传入的实参,只是在部分函数中为保证函数的完整性
语法

def 函数名(形参 = 初始值):
		……

例:

def sda(a=10,b=10):
    sum = a+b
    return sum

print(sda())
print(sda(1,3))

python基础笔记4(函数,可变与不可变对象,局部与全局变量,参数的传递)

4.不定长参数

在实参个数不定时使用
语法:

def 函数名(*参数名):
		for i in 参数名:
			循环体
return 返回值
def sum1(*number):
    total = 0
    for i in number:
        total += i
    return total

print(sum1(1,2,3,4))

python基础笔记4(函数,可变与不可变对象,局部与全局变量,参数的传递)

五、匿名函数

lambda关键字
语法

lambda 形参:执行语句

匿名函数没有return返回,执行语句本身就是返回值
参数可以使多个
调用:
直接将语句赋值给一个变量,然后调用
调用语句
赋值变量名(实参)

a = lambda x,y,z:x+y+z # 定义匿名函数
p=a(12,2,3)#调用匿名函数
print(p) # 打印输出函数值

python基础笔记4(函数,可变与不可变对象,局部与全局变量,参数的传递)

使用场景,多为一次性使用的函数,一般是单行语句,懒得起名的函数