zoukankan      html  css  js  c++  java
  • python函数

    内置函数
    python里面直接调用函数,如:
    abs(-100)

    数据类型转换;
    python内置的常用函数还包括数据类型转换函数,比如int()函数可以把其他数据类型转换为整数;
    int('123')            //123
    int(12.34)            //12
    bool('')              //False

    函数名其实就是指向一个函数对象的引用,完全可以把函数名赋值给一个变量,相当于给这个函数起了一个别名;
    a = abs
    a(-1)
    定义函数
    在python中,定义一个函数要使用def语句;
    def my_abs(x):
        if x >= 0:
            return x
        else:
            return -x
    空函数:
    如果想定义一个什么事也不做的空函数,可以用pass语句:
    def nop():
        pass

    函数的参数:
    位置参数:
    def power(x,n):
        s = 1
        while n > 0:
            n = n - 1
            s = s * x
        return s
    默认参数:
    我们可以在定义方法时,设置参数的默认值,如果有参数传进来,就用传进来的参数,不然就用默认值;
    def pow(x,n = 2):
        s = 1
        while n > 0:
            n = n - 1
            s = s * x
        return s
    注:一:必选参数在前,默认参数在后,否则会报错;
           二:如何设置默认参数;
        定义默认参数要牢记一点:默认参数必须指向不变对象~
    不然的话,函数会一直记住这个参数,每次都加一~
    def add_end(L=[])
        L.append('END')
        return L
    当你正常调用时,结果似乎不错;
    add_end()        //['END']
    add_end()        //二次调用,['END','END']
    add_end()        //三次调用,['END','END','END']
    要修改上面的例子,我们可以用None这个不变对象来实现;
    def add_end(L = None):
        if L is None:
            L = []
        L.append('END')
        return L

    可变参数:我们可以定义可变参数,使传入的参数个数是可变的,我们可以在外面先设一个list或tuple传进去,通过改变list或tuple的参数来达到可变参数传入的效果;但是,我们也可以定义个*num来不限定你传入的参数,你在函数里面可以用一个for n in num来迭代你的数据;
    def calc(*numbers):
    sum = 0
    for n in numbers:
    sum = sum + n * n
    return sum

    关键字参数:我们前面讲的可变参数是允许你传入0个或多个参数,这些参数在传入时会自动组装成一个tuple,而关键字参数允许你传入0或多个key-value类型的参数,这些关键字参数会在传入之后自动组装成一个dict,也就是字典数据类型;
    def person(name,age,**kw):
        print('name',name,'age',age,kw)
    和可变参数类似,也可以先组装出一个dict,然后,把该dict转换为关键字参数传进去;

    命名关键字参数:我们要限制关键字参数的名字,就可以用命名关键字参数,只接受city和job作为关键字参数;
    def person(name,age,*,city,job):
        print(name,age,city,job)
    这样,你在传入关键字参数的时候,就必须标明是city='Beijing'和job = 'Engineer';这样函数才会接受,不然是不会接受的;
    person('Jack',24,city = 'Beijing',job='Engineer')            //正解;
    person('Jack',24,'Beijing','Engineer')                 //误解;
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    FPGA+ADV7511实现HDMI显示
    【转载】ZYNQ Cache问题的解决方法
    FPGA控制RGMII接口PHY芯片基础
    【转载】linux 压缩和解压缩命令gz、tar、zip、bz2
    python中正则表达式与模式匹配
    【转载】数字IC设计流程及开发工具
    Linux基本操作——文件相关
    数字信号处理专题(3)——FFT运算初探
    C++基础——类继承中方法重载
    C++基础——类继承
  • 原文地址:https://www.cnblogs.com/zxx123/p/8973963.html
Copyright © 2011-2022 走看看