Python随笔记(函数)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35517448/article/details/76276056
函数:在一个完整的项目中,某些功能会反复的使用,那么会将功能封装成函数,当我们要使用函数的时候直接调用函数就可以。
本质:函数就是对功能的封装
优点:1、简化代码结构,增加了代码的复用

        2、如果想修改某些功能,或者调试某个bug,只需要修改对应的函数即可。


定义函数
格式:def   函数名(参数列表):
语句
return 表达式
def:函数代码块已def关键词开始
函数名:遵循标识符规则
():参数列表的开始
参数列表:(参数1,参数2,……,参数n):任何传入函数的参数和变量必须放在括号之间,用逗号隔开。
语句:函数封装的功能
return:一般用于结束函数,并返回信息给函数的调用者(return可以不写,不写默认return None)

表达式:为要返回给函数的调用者的信息


函数的调用:
格式:函数名(参数列表)
函数名:要使用的函数的名字
参数列表:函数的调用者给函数传递的函数
本质:实参给形参赋值的过程
形参(形式参数):定义函数时,小括号中的参数

参数必须按顺序传递,个数对应

案例:

编写函数,给函数两个数,返回这两个数的和

def mySum(num1,num2):
    #将结果返回给了函数的调用者
    sum = num1 + num2
    #执行完return语句,该函数结束,return后面的语句不执行
    return sum
    #return num1 + num2
res = mySum(1,2)
print(res)
传递参数:

值传递:传递不可变类型:string,tuple,number类型是不可变的

案例:

def func1(num):
    num = 10
temp = 20
func1(temp)#num = temp
print(temp)


引用传递:传递的可变类型list,dict,set

案例

def  func2(list):
    list[0] = 100
li = [1,2,3,4,5]
func2(li)
print(li)



默认参数

调用函数时,如果没有传递参数,则使用默认参数,一般默认参数放到最后

def myprint(str="sunck is a good man",age=18):
    print(str,age)
myprint("kaige good")


不定长参数

def function(*args,**kwargs):#用*args和**kwargs表示要传入的参数
    print(*args,**kwargs)
function("sunck","good")


匿名函数(本人第一次考试被它考懵了)

不适用def这样的语句定义函数,使用lambda来创建函数
特点:

1.lambda只是一个表达式,函数体比def简单

2.实现的逻辑比较简单,主体是一个表达式,而不是代码块,仅仅只能在lambda中封装简单的逻辑

3.lambda函数有自己的命名空间,且不能访问自由参数列表之外的或全局命名空间里的参数

4.虽然lambda是一个表达式且看起来只能写一行,与c与c++内联函数不同
案例:

将函数表达式转为lambda的形式

def func(name,arg):
    arg = arg + 10
    return arg
l = lambda arg,name : arg + 10
print(l(10,"sunck"))



偏函数(特地搜了搜的说)

可是实现进制的转换,可以将字符串转为整数

案例

print(int("1010",base=2))#当成二进制算,最后输出10进制的数字
def int2(str,base=2):
    return int(str,base )
 
 
print(int2("1010"))
#把一个参数定住,形成一个新的函数
int3 =functools.partial(int,base = 2)
 
 
 
 



终于有时间上传了(哈哈哈哈)

 
 
 

猜你喜欢

转载自blog.csdn.net/qq_35517448/article/details/76276056
今日推荐