基础教程——python函数
定义一个函数:
1.使用def关键字, def + 函数名 +(参数列表)
2.函数的内容由‘ :’开始,由缩进结束
注意:由于python的变量没有类型,则不像c和c++那么样有参数类型
虽然,没有参数类型,但是在变量的运算过程中,如果变量所引用的值错误依旧会报错
一般格式: def 函数名(参数列表): 函数体 return
知识点1. 参数
1.不可变类型:整数,字符串,元组。
2.可变类型:列表,字典
不可变类型:
变量没有类型,它只是引用了一个量,比如a=10, 10其实就开辟了一块内存的对象,那么a也只是引用了10这个对象,当再次将a=“123”时,a就引用了字符串。
def fun(a): a=20 a=10 print(a) <<<10
如以上函数,函数中的参数a变量,是一个局部变量,也就是说与全局变量的a引用了同一个10
但是,后面局部变量的a改变了引用,但是,它并不是全局变量的a,所以,全局变量的a一直没有改变过。由于,python中没有类似c++的&和指针,所以不可变量无法改变的。
四种参数:
1.位置参数
2.关键字参数
3.默认参数
4.可变参数
位置参数:顾名思义,位置不可变,一个参数都不可少
关键字参数:通过“ 键=值 ”的形式加以指定,可以改变参数的顺序
def fun(a, b): return a+b //正确用法: fun(a=1, b=1) fun(b=1, a=1) fun(1, b=1) fun(1, a=1) //错误用法 fun(a=1,1) fun(b=1,1)
也就是说,关键字参数一定要在位置参数后面。而关键参数之间不具有顺序关系
默认参数:就是为参数提供一个默认的值,这样这个参数赋不赋值都可以,用法和c++类似,一定要放在位置参数之后。
def fun(a=1): print(a) return fun() <<1
可变参数:
一个* , 带有一个*的参数以元组的形式导入(注意:元组不可变)
两个* , 带有两个*的参数以字典的形式导入(注意:字典可变)
def funone(*a): print(a) def funtwo(**b) print(b) funone(1,2,3) >>>(1, 2, 3) funtwo(a=1,b=2, c=3) >>{'a':1, 'b':2, 'c':3}
注意:存在一种特殊的参数。当*在参数列表中时,*后面的参数就必须用关键字传入
def add(a, b, *, c): return a+b+c add(1,1,c=1)
作用域
python中只有模块,类,函数才会引入作用域,其他不会产生作用域。