• Python学习【第8篇】:python中的函数


    1.python中函数定义方法

    def test(x):
    "This istest"
    y = x*2+1
    return y
    vaule = test(2)
    print(vaule)
    运行结果:
    5
    def:定义函数关键字
    test:函数名
    ():内可定义形参
    “”:文档描述(非必要,但是建议为函数添加注释信息)
    x+=1:泛指代码块或程序处理逻辑
    return:定义返回值
    函数的好处:
    1.代码重用
    2.保持一致性,易维护
    3.可扩展性

    2.过程定义:过程就是简单特殊没有返回值的函数

    def test01():
    msg = "Hello xiaoxing"
    print(msg)

    def test02():
    msg = "Hello xiaoxing"
    print(msg)
    return msg
    t1 = test01()
    t2 = test02()
    print(t1)
    print(t2)
    运行结果:

    Hello xiaoxing
    Hello xiaoxing
    None
    Hello xiaoxing

    前两个为定义函数时的输出

    第三个输出为none,因为在定义test01的时候过程没有返回值

    第四个正常输出

    总结:

    返回值数=0:返回None

    返回值数=1:返回object(对象)

    返回值数>1:返回tuple(元组)

    
    

    3.函数参数(对应day14-11)

    (1).形参变量只在被调用时才分配内存单元,在调用结束即刻释放所分配内存单元,即形参内部有效

    函数调用结束返回主调用函数后则不能再使用该形参变量

    (2)实参可以是常量,变量,表达式,函数等,无论实参是何种类型的量,在进行函数调用时,它都必须有确定的值,以便把这些值传送给

    形参。因此应预先用赋值,输入等办法使参数获得确定值

    例子:

    def  calc(x,y):
    res = x**y
    return res
    c = calc(2,3)
    print(c)
    运行结果是8
    在这里x,y是形参,2,3是实参

    (3)位置参数和关键字(标准调用;实参与形参位置一一对应;关键字调用:位置无需固定)
    例子:
    def calc(x,y,z):
    print(x)
    print(y)
    print(z)
    calc(1,2,3)
    运行结果:
    1
    2
    3
    在这里clac(1,2,3)就是位置参数与形参位置一一对应,但是需注意缺一个不行,多一个也不行
    def calc(x,y,z):
    print(x)
    print(y)
    print(z)
    calc(y=2,x=1,z=3)
    运行结果也是
    1
    2
    3
    在这里因为是关键字参数因此无需一一对应,但是需注意缺一个不行,多一个也不行
    例如
    def calc(x,y,z):
    print(x)
    print(y)
    print(z)
    calc(y=2,x=1)
    运行就会报错

    (4)位置参数必须在关键字左边,否则运行会报错

    def clac(x,y,z):
    print(x)
    print(y)
    print(z)
    clac(1,y=2,3)
    在这里如果运行会报错,因未遵循位置参数必须在关键字左边

    (5)默认参数
    在定义函数时,就有值,即使不赋值,它就会使用默认参数
    def calc(x,y="ceshi"):
    print(x)
    print(y)
    calc(2)
    运行结果:
    2
    ceshi
    在这里我们未给y进行赋值,因此y使用默认参数进行输出

    (6)参数组,**字典,*元组(在这里一个*输出元组,二个*输出字典)
    def test(x,*args):
    print(x)
    print(args)
    test(1,2,3,4,5,6)
    运行结果

    1
    (2, 3, 4, 5, 6)

    在这里2,3,4,5,6相当于元祖中的一个元素,传递到args中

    test(1,("x","y","z"))
    运行结果:
    (('x', 'y', 'z'),)
    test(1,*("x","y","z"))
    运行结果:

    ('x', 'y', 'z')

    如果是两个**
    def test(x,**kargs):
    print(x)
    print(kargs)
    test(1,y=2,z=3)
    运行结果

    1
    {'y': 2, 'z': 3}

    在这里输出的结果是字典

  • 相关阅读:
    easyUI 后台经典框架DEMO下载
    一个通过JSONP跨域调用WCF REST服务的例子(以jQuery为例)
    WCF的三个名称/命名空间,你是否傻傻分不清楚?
    未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService... 匹配的导出 VS2012报错
    jquery easyui tabs单击刷新右键刷新
    在64位Windows7上安装64位Oracle11g
    Linux入门
    服务器硬件知识
    IP后面带/30 /29 /27等是什么意思?
    vitualbox安装centos7卡死
  • 原文地址:https://www.cnblogs.com/star520/p/9093562.html
Copyright © 2020-2023  润新知