• Python学习笔记(六)


    一、函数简介

      函数可以看做是程序的组织的一种方式,是功能代码块的一种抽象和封装


    二、函数定义

      def 函数名():
        功能代码语句
        return 

      函数在遇到return会终止整个函数,如果函数没有为其书写return语句的话也将默认返回None


    四、函数的调用

      函数名(对应参数列表)


    五、空函数

      空函数是什么也不做的函数,其函数体可以直接使用关键字pass,例如:
      def non():
        pass


    六、返回多个值

      Python中的函数支持返回多个值

      def newXY(x,y):
        return x+10 , y + 10

      x,y = newXY(10,20)

      返回多个值是一种语法的假象,因为在Python中返回一个Tuple语法上可以是不需要()的


    七、参数检查

      Python是一种弱类型的脚本语言,因此需要十分注意对参数类型的检查

      对参数类型的检查可以方便的借助Python中系统内置函数:isinstance()来实现

      def check(x):
        if not isinstance(x,(int,float)):
          raise TypeError("类型不符合")
        ......


    八、默认参数

      Python中默认参数使得Python函数变得更加灵活、可扩展

      def student_info (name , age , sex = "男" , school = "XX小学"):
        print("===========学生信息===========")
        print("姓名:",name)
        print("年龄:",age)
        print("性别:",sex)
        print("学校:",school)
        print("============END=============")

      这时调用函数时,既可以:student_info("CQ",20) ,也可以:student_info("CQ",20,sex="女")

      默认参数的使用规则:固定参数可变参数在前,默认参数在后

      参数的传递可以不是固定顺序的,也可以直接执行指定参数进行传递

      默认参数必须指向不可变的对象,因为如果指向可变对象,那么函数在定义调用时便在内存中创建出来一个可变对象的变量并指向它了,那么后续每次调用就直接使用之间创建并使用的对象了


    九、可变参数

      Python中允许为函数传递可变参数,即使会是0个参数

      可以使用如下方式进行定义可变参数:
      def sum(*numbers):
        sum = 0
        for i in numbers:
          sum += i
        return sum

      在调用该函数时,可以sum(1,2,3,4),也可以sum(1,2,4,5,...)

      如果已经存在了一个tuple或者list,那么可以直接使用 * 将其做为可变参数的变量进行传递,即 sum(*num_lsit)


    十、关键字参数

      在可变参数的内部是将所传入的可变参数拼装成一个tuple,在Python中也可以允许传递关键字参数,即自己指定函数的参数名和其对应的值,关键字参数在内部是将参宿封装成为一个dict来完成的

      关键字参数的函数的定义:
      def student_info(name,age,**other):
        print("姓名:",name)
        print("年龄:",age)
        print("其他:",other)

      则在传递时,可以使用student_info("name",20,"city"="北京","sex"="男"),当然如果已经存在一个已经定义的dict,则也可以使用如下方式调用函数:student_info("cheqnian",20,**other_dict)

      注意:所传递的dict会在函数的内部进行一个拷贝,因此函数内部对拷贝得到的dict的改变并不会影响外部的dict


    十一、命名关键字参数

      命名关键字可以看做限制了关键字参数的接收的范围,例如可以指定接收什么关键字

      命名关键字函数的定义:
      def student_info(name,age,*,city="beijing",salary):
        pass
      def student_info(name,age,*kw, city="beijing",salary)
        pass


    十二、参数组合

      在Python中可以定义多种参数形式,为了不混乱,定义的顺序为:必选参数、默认参数、可变参数、命名关键字参数和关键字参数


    十三、递归函数

      函数的递归指的是函数自己调用自己本身

      def fac(n):
        if n == 1:
          return n
        else:
          return n * fac(n-1)

      注意:过多的递归调用则会导致栈溢出



      

      


      

  • 相关阅读:
    poj2115
    poj2136
    软件的架构与设计模式之模式的种类
    SOA: My Understanding (转载未来技术方向)
    深度管理Remote Objects的生存期 (转载)
    SmartClient(智能客户端) 转载
    Windows Communication Foundation入门(Part One)
    使用.NET Remoting开发分布式应用——基于租约的生存期(转载)
    软件设计模式C#
    MarshalByRefObjects远程对象及其调用方法
  • 原文地址:https://www.cnblogs.com/userchencq/p/7528403.html
Copyright © 2020-2023  润新知