您的位置:首页 > 编程语言 > Python开发

Python每日一记35>>>函数基础知识

2019-04-12 11:22 274 查看

前段时间开始忙碌,因此均没有进行记录,但是依然每天有相关学习,主要将python函数的相关知识进行了复习,下面进行一些知识的记录。
1、形参和实参
定义以下求最大值得函数,其中形参就是括号中的a,b,实参就是9,10


2、参数的类型
参数的类型包括位置参数,默认值参数,命名参数,可变参数,强制命名参数
#位置参数
def printmax(a,b,c):
if max(a,b,c)==a:
print(‘最大值为{}’.format(a))
elif(a,b,c)==b:
print(‘最大值为{}’.format(b))
else:
print(‘最大值为{}’.format©)
printmax(10,100,1000)
#printmax(10,100)参数个数不匹配会报错

#默认值参数
def printmax(a,b,c=10000):
if max(a,b,c)==a:
print(‘最大值为{}’.format(a))
elif(a,b,c)==b:
print(‘最大值为{}’.format(b))
else:
print(‘最大值为{}’.format©)
printmax(10,100)#不指定c的值就会使用默认值

#命名参数
def printmax(a,b,c):
if max(a,b,c)==a:
print(‘最大值为{}’.format(a))
elif(a,b,c)==b:
print(‘最大值为{}’.format(b))
else:
print(‘最大值为{}’.format©)
printmax(a=10,b=100,c=1000)

#可变数量参数,*元组
def printmax(a,b,*c):
print(a,b,c)
printmax(10,100,1000,10000)#*c代表的是1000,10000

#可变数量参数,**字典
def prit(a,b,**c):
print(a,b,c)

prit(‘h’,‘j’,name=‘hao’,age=10)#**c代表的是name=‘hao’,age=10

#强制命名参数,可变参数后面,还要家参数,必须强制命名
def prit(a,b,*c,d):
print(a,b,c,d)

prit(‘h’,‘j’,10,10,d=100)
3、函数返回值
我们发现return除了返回值外,另一个作用是结束函数过程,也就是说,return后的语句不会被执行。


4、全局变量和局部变量
全局变量不能再函数内被修改,只有当加了globle后才能被修改



5、参数传递-可变参数传递
我们发现传递可变对象,实际上是传递的地址,地址指向同一个对象,在函数内对于参数的改变,都会反应在传递的可变参数上。

6、参数传递-不可变参数传递
我们发现传递不可变对象,对其进行更改后,其地址改变了,也就是在新建了一个对象,而且原对象是不改变的。

7、深拷贝、浅拷贝
我们发现浅拷贝和深拷贝的确有所不同,浅拷贝是只拷贝对象自己,而不会对子对象进行拷贝,也就是说其第一层进行拷贝,子层只是地址的指向,因此在对拷贝的对象的子对象进行修改时,可改变原对象的子对象,但深拷贝会完全宝贝对象,因此其自己会对子对象操作,而不会改变原对象的子对象


8、lambda函数
定义简单的函数,直接返回值,只能包含一个表达式。

9、eval()函数
此函数的厉害之处是将字符串string对象转化为有效的表达式参与求值运算返回计算结果



另外还可以用作字符串对象和list、dictinoary、tuple对象之间的转换,如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: