zoukankan      html  css  js  c++  java
  • python基础之函数

    1、python中函数的定义:

           函数其实就是带名字的代码块,用于完成一些具体的工作。如果我们在写一段程序的时候,需要多次用到同样的一个功能,如果每次都要重复写相同的代码,不仅会增加我们的代码量,更会让我们写出的代码让别人看起来觉得很low,而如果我们把功能作为一个代码块封装在一个函数里,每次仅需要调用这个函数,是不是就很方便了?这就是函数的意义所在。

    1.1函数的定义方式

             def test(x):

                "The function defination"
                    x+=1
                    return x

    ###解释
     test:函数名
    ():内可定义形参
     “”:文档描述(非必要,最好写)
     x+=1:泛指代码块或程序处理逻辑 #
      return:定义返回值

    调用运行:可以带参数也可以不带

    函数名()

    2、使用函数的好处

    (1)减少代码重用

    (2)保护一致性,易维护

    (3)可扩展性

    3、函数和过程的区别

           过程就是没有返回值的函数(即没有return)

           

    def test01():
        msg='hello the little green grass'
        print(msg)
    
    def test02():
        msg='hello the beautiful girl'
        print(msg)
        return msg
    
    def test03():
        msg='the girl is gorgeous'
        print(msg)
        return 1,2,3,'a',['alex'],{'name':'czd'}
    
    t1=test01()
    t2=test02()
    t3=test03()
    print(t1)
    print(t2)
    print(t3)
    explain:
    返回值数=0:返回none;(没有返回值,即过程)
    返回值数=1:返回object;
    返回值数>1:返回tuple;

    4、函数参数
    4.1.形参和实参
    实参是一个实实在在存在的参数,是实际占用内存地址的,而形参只是意义上的一种参数,在定义的时候是不占内存地址的。
    函数的调用中,可能存在多个实参,在给函数传递参数的时候只要有两种方式,位置实参和关键字实参,每个实参都由变量名和值组成,实参还可以是列表、字典。
    4.2 改用函数写
    def calc(x,y):       #(x,y)为形参
        res=x**y
        return res
    res=calc(a,b)      #(a,b)为实参
    
    print(res)
    4.3  位置参数和关键字参数
    def calc(x,y):
        res=x**y
        return res
    res=calc(2,3)
    
    print(res)
    
    位置参数必须一一对应,缺一不行多一也不行
    
    def test(x,y,z):
        print(x)
        print(y)
        print(z)
    test(1,2)    # 报错
    
    
    
    关键字参数无需一一对应,但缺一不行多一也不行
    def test(x,y,z):
        print(x)
        print(y)
        print(z)
    test(y=1,x=2,z=4)
    test(x=2,z=4)   #缺一报错
    
    
    
    
    
     位置参数必须在关键词左边
    def test(x,y,z):
        print(x)
        print(y)
        print(z)
    test(1,y=2,3)  # 报错
    test(1,2,y=3)    # 报错
    test(1,2,z=3)
    test(1,2,z=3,y=4)    # 报错
    
    4.4 默认参数
    def handle(x,type='None'):
        print(x)
        print(type)
    handle('hello')   # type默认‘None’
    handle('hello',type='squile')
    handle('hello','squile')  # 位置参数
    
    4.5 参数组
    def test(x, *args):  # 列表
        print(x)
        print(args)
    
    
    test(1, *['x', 'y', 'z'])
    test(1, ['x', 'y', 'z'])  # 没有*时,把列表当成一个整体传给args
    
    
    def test(x,**kwargs):   #字典
        print(x)
        print(kwargs)
    
    
    test(1,y=2,z=3)
    test(1,y=2,z=3,z=4)  # 报错,一个参数不能穿2个值
    4.6 默认参数与参数组联合使用
    # *args必须在前,**kwargs在后
    
    def test(x,*args,**kwargs):
        print(x)
        print(args)
        print(kwargs)
    
    
    test(1,1,2,11,x=1,y=2,z=4)   #报错,x重了
    test(1,1,2,11,y=2,z=4)
    
    def test(x,*args,**kwargs):
        print(x)
        print(args,args[-1])
        print(kwargs,kwargs.get('y'))
    
    
    test(1,1,2,11,y=2,z=4)
    test(1,*[1,2,3],**{'y':1})
    
    
    
    
    
    
     
     
    
    
    
  • 相关阅读:
    sublime配置攻略
    Objective-C代码块语法(block)使用
    [C/C++]_[VS2010来源与UTF8中国字符串转码ANSI问题]
    Android资源管理框架(Asset Manager)简介和学习计划
    ExtJs自学教程(1):从一切API开始
    ORACLE触发特定的解释
    同TextView在不同的显示内容
    :gAudit
    IIS日志分析 MapReduce
    图片存储心得
  • 原文地址:https://www.cnblogs.com/changzhendong/p/11152200.html
Copyright © 2011-2022 走看看