基础教程——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中只有模块,类,函数才会引入作用域,其他不会产生作用域。

posted @ 2018-12-22 00:04  神韵袖藏  阅读(269)  评论(0编辑  收藏  举报