• Python-函数小结


    原文出处,如有侵权,请联系删除。

    • 用户自定义.py文件

       如果你已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abstest import my_abs来导入my_abs()函数,注意  abstest是文件名(不含.py扩展名)

    • 定义空函数 nop()

    如果想定义一个什么事也不做的空函数,可以用pass语句:

    def nop():
        pass
    

    pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。

    pass还可以用在其他语句里,比如:

    if age >= 18:
        pass
    

    缺少了pass,代码运行就会有语法错误。

    • 用户自定义检验参数类型
    def my_abs(x):
        if not isinstance(x, (int, float)):
            raise TypeError('bad operand type')
        if x >= 0:
            return x
        else:
            return -x
    • 函数返回多个数值
    def fun1(x):
        a=x**2
        b=x**3
        return a,b
    a,b=fun1(4)
    print(a,b)
    • 可变参数
    def variableArg(*num):
        sum=0
        for n in num:
            sum=sum+n**2
        return sum
        
        
    print(variableArg(1,2,3,4))
    可变参数

      定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变

      *nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。

      

    def power(x, n=2):
        s = 1
        while n > 0:
            n = n - 1
            s = s * x
        return s
    默认参数

      这样,当我们调用power(5)时,相当于调用power(5, 2)

      设置默认参数时,有几点要注意: 一是必选参数在前,默认参数在后,否则Python的解释器会报错

      当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。

    • 可变参数

      

      

    • 实例之求解一元二次方程的根
    import math
    #输入三个参数,返回一元二次方程的解
    def quadratic(a,b,c):
        delt=math.pow(b,2)-4*a*c
        delt1=math.sqrt(delt)
        if delt<0:
            print('该一元二次方程没有实根')
            return None
        elif delt==0:
            print('该一元二次方程只有一个实根')
            x1=x2=(-b/2*a)
            return x1,x2
        else:
            print('该一元二次方程有两个实根')
            x1=(-b+delt1)/(2*a)
            x2=(-b-delt1)/(2*a)
            return x1,x2
    print('请输入一元二次方程的三个系数a,b,c:')
    a=float(input('请输入a:'))
    b=float(input('请输入b:'))
    c=float(input('请输入c:'))
    x1,x2=quadratic(a,b,c)
    print('该一元二次方程的解析式为:{0}x^2+{1}x+{2}=0'.format(a,b,c))
    print('该一元二次方程的解x1={0:.3f},x2={1:.3f}'.format(x1,x2))
    • 求一个list的最大值与最小值,以tuple形式返回

      

    #迭代查找一个list(随机数生成一个list)的最大值与最小值,并返回一个tuple
    
    import random
    
    def getRandomList():
        ranList=[]
        for i in range(10):
            ranList.append(random.choice(range(101)))
        print('生成的随机list为',ranList)
        return ranList
    def find_min_max(ranList):
        minNums=maxNums=ranList[0]
        for x in ranList:
            if x<minNums:
                minNums=x
        maxNums=max(ranList)
        return (minNums,maxNums)
    #dict={'max':maxNums,'min':minNums}
    print(find_min_max(getRandomList()))
    View Code
  • 相关阅读:
    用spring的InitializingBean作初始化
    LinkedList源码分析
    CgLib动态代理
    DB2删除表分区
    spring aop搭建redis缓存
    List怎么遍历删除元素
    线程池ExecutorService和完成服务CompletionService的使用获取线程的返回结果
    synchronized与static synchronized 的区别
    将spring管理的bean使用注解的方式注入到servlet中
    eclipse右击打war包class没打上去的问题
  • 原文地址:https://www.cnblogs.com/liberate20/p/10682747.html
Copyright © 2020-2023  润新知