• python基础之函数


    函数的定义

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能得代码段。

    定义一个函数:

    1,函数代码块以def关键词开头,后接函数标识符名称和圆括号()

    2,任何传入参数和自变量必须放在圆括号中间,圆括号之间用于定义参数

    3,函数的第一行语句可以选择性的使用文档字符串-用于存放函数说明

    4,函数内容以冒号起始,并且缩进

    5,return结束函数,选择性地返回一个值给调用方,不带表达式的return相当返回 None

    def printme( str ):
       "打印传入的字符串到标准显示设备上"
       print str
       return
    

    函数调用

    定义一个函数只给了函数一个名称,指定了函数里包含的参数和代码块结构,这个函数的节本结构完成以后,可以通过另一个函数调用执行,也可以直接从python提示符执行。

    参数

    可变参数

    在python函数中,还可以定义可变参数,参数可以是任意个

    def calc(*numbers):
        sum = 0
        for n in numbers:
            sum = sum + n * n
        return sum

     关键字参数

    可变参数允许你传入0个或者任意个参数,这些可变参数在函数调用时自动组装为一个tuple,而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

    def person(name, age, **kw):
        print 'name:', name, 'age:', age, 'other:', kw
    

    函数person除了必选参数nameage外,还接受关键字参数kw。在调用该函数时,可以只传入必选

    参数组合

     在python中定义函数,可以用必选参数,默认参数,可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数,默认参数,可变参数和关键字参数

    总结:

    1,python的函数具有非常灵活的参形态,既可以实现简单的调用,又可以传入非常复杂的参数

    2,默认参数一定要用于不可变对象,如果是可变对象,运行会有逻辑错误

    3,要注意定义可变参数和关键字参数的语法:

         *args是可变参数,args接收的是一个tuple;

         **kw是关键词参数,kw接收的是dicr,

    4,函数如何传入可变参数和关键字参数的语法:

       可变参数既可以直接传入:func(1,2,3),又可以先组装list或者tuple,再通过*args传入func(*(1,2,3))

       关键字参数既可以直接传入:func(a=1,b=2),又可以先组装dict,再通过**kw传入:func(**{'a':1,'b':2})

    作用域:作用范围

    全局作用域:内置名称空间与全局名称空间的名字属于全局范围,

    在整个文件的任意位置都能被引用,全局有效。

    局部作用域:函数调用时

     

    闭包函数:函数内部定义的函数,成为内部函数,该内部函数包含对外部

    作用域,而不是对全局作用域名字的,那么该函数成为闭包函数。

    函数的返回值

     1,指定返回值与隐含返回值

        函数体中return语句有指定的返回值时,返回的就是其值

      函数体中没有retrun语句时,函数运行结束会隐含返回一个none作为返回值类型是 NoneType,与 return 、return None 等效,都是返回 None。

    2 return 语句位置与多条 return 语句

        函数中使用return语句返回‘返回值’,可以将其赋给其他变量作其他用处

       所有函数的返回值,如果没有return语句,会隐式地调用return None作为返回值

       一个函数可以存在多条return语句,但只有一条可以被执行,如果没有一条return语句被执行,同样会隐式调用 return None 作为返回值

       如果有必要,可以显示调用return None明确返回一个None(空值对象)作为返回值,可以简写为 return,不过 python 中懒惰即美德,所以一般能不写就不写

       如果函数执行了 return 语句,函数会立刻返回,结束调用,return 之后的其它语句都不会被执行了

    3,返回值类型

          无论定义的是返回什么类型,return只能返回单值,但值可以存在多个元素

          return[1,3,5]是至返回一个列表,是一个列表对象1,3,5分别是这个列表的元素

         return1,3,5看是返回多个值,隐式的被python封装成了一个元组返回

  • 相关阅读:
    Git 最新版本2.20.1 安装及配置
    Python中:ModuleNotFoundError: No module named 'alipay'
    Python调用time模块设置当前时间-指定时间
    python 正则表达式
    pwntools出现的一些问题
    strace监视系统调用
    深入理解Linux内核 学习笔记(8)
    ubuntu 查看版本
    LSTM实现中文文本情感分析
    深入理解Linux内核 学习笔记(5)
  • 原文地址:https://www.cnblogs.com/MsHibiscus/p/10660836.html
Copyright © 2020-2023  润新知