Python基础七(函数)
函数概述
函数:组织好的、可重复使用的。杉树能提高应用的模块性和代码的重复利用性。Python提供了很多的内置函数,比如len()等等,可以自行定义函数。
函数的定义
def 函数名(参数列表): #函数定义
函数体
函数名() #函数执行
def namePrint(): #函数定义,这是无参数函数 print("我的名字是:发发") name() #执行函数
def func2(a): #定义了一个有形参的函数 print(a) func2("123") #执行函数需要输入形参
def func3(a,b): print(a,b) func3(a=4,9) #错误 def func3(a,b): print(a,b) func3(4,b=9) #正确
默认参数传值
def func3(a,b,c='hello'): print(a,b,c) func3(4,9) >>4 9 hello def func3(a,b,c='hello'): print(a,b,c) func3(4,9,0) >>4 9 0
获取函数文档字符串
def func1(); "我是函数" #文档字符串(只有第一行才是的) print(func1._doc_)
不定长参数
def func3(a,b,c,*d): print(a,b,c,d) func3('a','b','c','d','e') >>>a b c ('d', 'e') def func3(a,b,c,*d,**e): print(a,b,c,d,e) func3('a','b','c','d','e') >>>a b c ('d', 'e') {}
必备参数
函数定义中允许拥有多个形参,因此函数调用时,也可以包含多个实参想函数传递方式很多,通过实参和形参的顺序对应,这就是位置实参。只有位置一致才能被正确匹配。
可变对象与不可变对象的传输
在Python 中,strings,tuples和numbers是不可更改的对象,而list、dict、和set等则是可以修改的对象。
不可变类型:变量赋值a=5后再赋值a=10,这里实际是重新重新生成了一个int值对象10,再让a指向它,而5被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值la=[1,2,3,4]后赋值la[2]=5,本身的la没有动,,只是其内部的一部分值被修改了。
函数参数参数-可变与不可变对象传输
不可变类型:如fun(a),传递只传递a的值,没有影响a对象本身,只是修改另一个复制对象,不会影响a本身。
可变类型:列表、字典。如fun(la),则是将la真正的传过去,修改后fun外部的la也会受影响。
函数return返回结束
def fun2(): return 111 #结束了 print(234) fun2() print(fun2())
>>>111