zoukankan      html  css  js  c++  java
  • 函数(一)

    在前面的学习中我们接触到了两个有用的函数,type(object)用来判断object的类型,id(object)用来输出object在内存中的位置。

    所谓的函数,就是专门实现某种计算功能的一组语句的集合,使用一个“函数名字”管理,可以通过函数名字,重复执行这个计算任务。

    这个执行过程就叫做函数调用,函数调用是使用“函数名加上()”来实现的,()也叫做函数调用操作符。

    >>>anInt = 3
    >>>type(anInt)
    <type 'int'>

    type(object)是python内置函数,不需要我们自己定义就直接使用,python内置了需要有用的内置函数。

    #python 内置函数
    #Built-in Functions   
    abs()                 divmod()    input()       open()       staticmethod() 
    all()                 enumerate() int()         ord()        str() 
    any()                 eval()      isinstance()  pow()        sum() 
    basestring()          execfile()  issubclass()  print()      super() 
    bin()                 file()      iter()        property()   tuple() 
    bool()                filter()    len()         range()      type() 
    bytearray()           float()     list()        raw_input()  unichr() 
    callable()            format()    locals()      reduce()     unicode() 
    chr()                 frozenset() long()        reload()     vars() 
    classmethod()         getattr()   map()         repr()       xrange() 
    cmp()                 globals()   max()         reversed()   zip() 
    compile()             hasattr()   memoryview()  round()      __import__() 
    complex()             hash()      min()         set()        apply() 
    delattr()             help()      next()        setattr()    buffer() 
    dict()                hex()       object()      slice()      coerce() 
    dir()                 id()        oct()         sorted()     intern() 

    python也支持自定义函数,使用关键字def来定义函数。

    def func_name(argument)
        print 'def a function'
        print argument

    func_name 函数名的命名法则和变量的命名法则一样。

    以字母(大写字母,小写字母)或者下划线(_)开头。

    后面可以由字母,数字或者下划线组成,其他的字符都是非法的。

    关键字不可以做为函数名字。

    第一行称为函数头以冒号(:)结束,其余部分称为函数体,函数体由任意语句组成。

    在python中采用缩进来表示函数头和函数体之间的逻辑关系。

    python约定采用4个空格来缩进。

    定义中()中argument是表示参数,可以在函数体内使用。参数是可选,也可以不定义。

    >>>def show_msg():
    ...        print 'hello'  # ... python 次提示符
    
    >>>def show_msg_name(name):
    ...        print name
    
    >>>def show_msg_name_defult(name = 'mfh'):
    ...        print name
    
    >>def show_person(name, age=10):    
    ...        print name,   # , 逗号 抑制换行符的输出
    ...        print age
    
    
    >>>show_msg()
    
    hello
    >>>show_msg_name('mfh')
    mfh
    
    >>>show_msg_name_defult()
    mfh
    >>>show_msg_name_defult('peter')
    peter
    
    >>>show_person('mfh')
    mfh 10
    >>>show_person('mfh', 20)
    mfh 20

    定义函数的参数时还可以提供一个默认值。具有默认值的参数必须放在没有默认值参数的右边,否则语法错误。

    每个函数都会有一个返回值。使用关键字return 返回,没有明确指定返回值的将默认返回None。

    def test_return_value(value1, value2):
        return value1 + value2        
        
    test_return_value(1, 2)
    
    3
    >>>def show_msg():
    ...        pass # pass 是null(空)操作,不执行任何语句,只起到占位的作用
    
    >>>print show_msg()
    
    None
    
    >>>print show_msg
    
    <function test at XXXXXX>  # XXXXXX一串表示函数地址的数字
    
    >>>type(show_msg)
    
    <type 'function'>

    函数和变量一样必须先定义才能使用。函数就是类型为function的对象,函数名只是指向这个对象引用。

    我们也可以把函数当做一般的“变量”那样使用。

    >>>def show_msg():
    ...        print 'I am show_msg'
    
    >>>anthor_name = show_msg #注意没有(),带()表示函数调用,会执行函数中的的代码,将返回值赋值给anthor_name
    >>>anthor_name()
    I am show_msg

    show_msg 和 anthor_name 都指向同一个函数对象。anthor_name 是show_msg的一个别名。

    关键字return还可以中断正常的执行流程。解释器遇到return后函数执行返回将不在执行函数体内return后面的语句。

    >>> def test():
    ...        print 'first'
    ...        return
    ...        print 'second'
    
    >>> test()
    first

     总结:

    函数:为了完成某种计算任务的一组语句的集合,用一个“名字”来管理,可以通过这个名字反复执行这些语句。

    函数调用:执行函数的语句,叫做函数调用。形式上为函数名加上()。

    参数:函数体可以接受外部的变量,在函数定义时指定参数的个数和默认值。

    返回值:每个函数都有一个返回值,使用关键字return加上要返回值的值表达,如果没有显示指定返回值,默认为None。

    内置函数:随着Python解释器一起发布的常用函数,比如type()和id()。

    函数对象:函数定义时创建的一个值,函数名字只是引用这个值。

    函数别名:可以创建多个变量指向(引用)已经定义好的函数对象,这些对象作为已经创建的函数别名存在。

    20130710 修订,增加总结。 

  • 相关阅读:
    [android] 安卓消息推送的几种实现方式
    二进制部署 Kubernetes 集群
    nginx location反向代理不对等时的处理
    CentOS7用阿里云Docker Yum源在线安装Docker 17.03.2
    Harbor作为Docker的镜像中心
    Harbor 使用 Helm 一键安装
    MYSQL Innodb逻辑存储结构
    安装Redis 4.0单实例
    Redis慢查询日志
    创建Python数据分析的Docker镜像+Docker自定义镜像commit,Dockerfile方式解析+pull,push,rmi操作
  • 原文地址:https://www.cnblogs.com/mengfanhao/p/3148508.html
Copyright © 2011-2022 走看看