zoukankan      html  css  js  c++  java
  • 函数的基本使用和参数

    一、函数的基本使用

      1、什么是函数?   

        在程序中,具备某一个功能的工具指的就是函数,事先准备工具的过程就是就函数的定义,拿来就用就是函数的调用

      2、函数定义

         函数的使用必须遵循先定义后使用的原则,函数的定义就是相当于事先将函数体代码保存起来,然后将内存地址赋值给函数名,函数名就是这段代码的引用,没有事先定义函数就直接调用,相当于在引用一个不存在的变量名

        定义函数的语法:

    def 函数名 (参数1,参数2,参数3,...):
        “““文档描述”””
        函数体
        return 返回值

        函数三种类型:

        ⑴、无参函数

    打印输出
    def func():
        print('abx')

        ⑵、空函数

    def func1():
        pass
    
    def func2():
        pass
    
    ...

        ⑶、有参函数

    # 输入a + b的值
    
    def func(a,b):
        print(a+b)

      3、函数的调用与返回值

        函数是先定义,后调用,函数在调用前,只检查语法,不执行任何代码

        函数的调用:

          直接调用

          定义变量接收,再返回变量

          将函数返回值当做另外一个函数参数

        返回值:return

          return是一个函数结束标志,只要执行到return,函数结束

          return多个值时,将返回多个值默认存入元组,函数返回不想被修改

      4、函数参数

        形参:是函数定义阶段规定的参数,相当于变量名

        实参:是函数调用阶段传递的参数,相当于变量值

    def func(a)    # 此处a就是形参
        pass
    
    a = 1
    func(a)        # 此处a就是实参

        位置参数:通过位置进行传参

    def func(a,b,c)
        pass
    
    fun(1,2,3)    # 位置参数,a=1,b=2,c=3

        关键字参数:指定参数进行传递

    def func(a,b)
        pass
    
    func(a=1,b=2)

        ps:关键字参数要在位置参数后,连用时候不要对同一形参赋值

        默认参数:在定义阶段就已经传入

          如果在实参时候传入一个新参数,就会使用新参数

          默认参数在传值时,不要将可变类型当做参数

    def func(a,b,c=0)    # 此处c就是默认参数,默认c=0
        pass
    
    func(1,2)    # 使用默认参数,传进去为a=1,b=2,c=0
    func(1,2,3)    使用新参数,a=1,b=2,c=3

        可变长参数:*args

          接收所有溢出位置参数

          接收的值都被存入一个元组

          *:打散传入的容器类型

              **kwargs

          接收所有溢出的关键字参数

          接收的值都被存入一个字典

    def func(x,y,z):
        pass
    
    func(1,2,3,4,5)    #接收的位置参数大于形参数,会报错
    func(a=1,b=2,c=3,d=4,e=5)    #接收的关键字参数溢出,报错
    
    # 使用*args
    def func(a,b,c,*args):
        pass
    func(1,2,3,4)
    
    #使用**kwargs
    def func(a,b,c,**kwargs):
        pass
    func(a=1,b=2,c=3,d=4,e=5)
  • 相关阅读:
    Dynamics AX
    专注于领域驱动设计的研究与实践系列转载
    在C#里使用属性,如Obsolete,Serializable,XmlRoot
    SQL 2005 with(nolock)详解
    Microsoft Domain Oriented NLayered .NET 4.0 App Sample (DDD Architecture)
    使用 .NET4 中的Task优化线程池【.NET4 多核并行】
    实现简单DTO适配器,解放你的双手
    最强悍的VS插件—reSharper
    通过代码配置 Log4net
    Microsoft NLayerApp案例理论与实践–DDD、分布式DDD及其分层【转】
  • 原文地址:https://www.cnblogs.com/hexianshen/p/11826428.html
Copyright © 2011-2022 走看看