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

  • 相关阅读:
    hadoop无法启动常见原因
    mahout版本兼容问题
    递归打印字符串
    斐波那契数列
    int('x', base)中的base参数
    打印的特殊符号
    位置参数,默认参数,非关键字可变长参数,关键字可变长参数
    try...except包含try...finally方法
    7.9 未解答
    对集合应用符号 | & ^
  • 原文地址:https://www.cnblogs.com/damaoranran/p/10159600.html
Copyright © 2011-2022 走看看