zoukankan      html  css  js  c++  java
  • 函数

    1、在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。

    #自创一个求绝对值的函数
    def my_abs(x):
        if x >= 0:
            return x
        else:
            return -x

    一旦遇到return函数就执行完毕并返回值。如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。

    return就是将值返回给调用函数的地方

    2、请定义一个 square_of_sum 函数,它接受一个list,返回list中每个元素平方的和

    def square_of_sum(L):
        return sum(x*x for x in L)            #先定义好元素平方的值
    print (square_of_sum([1, 2, 3, 4, 5]))    #直接调用定义好的求平方,然后用sum求和
    print (square_of_sum([-5, 0, 5, 15, 25])) 

    3、函数可以返回多个值

    #从一个位置通过计算速度移动到另一个位置,可得出所需时间
    def move(x,y,speed):
        time = abs(x - y) / speed
        return time
    #这样就可以直接调用上面的函数,自己创建值
    t = move(90,100,1)
    print(t)
    

    其实返回的值是一个tuple的形式,所以返回的值还是一个可能包含多个元素的元组

    4、位置参数与关键字参数

    def test(x,y,z)
    
    #位置参数,必须一一对应,不可多或少
    test(1,2,3)    #x = 1,y = 2,z = 3
    
    #关键字参数,无须一一对应,不可多或少
    test(x = 1,z = 3,y = 2)
    
    #位置参数必须在关键字参数左边,同样不可多或少
    test(1,2,z = 3)

    5、参数组arg、kwarg

    # *列表(位置参数)
    def test(x,*args):
        print(x)
        print(args)
    
    test(1,['x','y','z'])
    输出:1
         (['x', 'y', 'z'],)
    
    test(1,*['x','y','z'])
    输出:1
         ('x', 'y', 'z')
    
    # **字典(关键字参数)
    def test(x,**kwargs):
        print(x)
        print(kwargs)
    
    test(1,y = 2,z = 3)
    输出:1
         {'y': 2, 'z': 3}
    
    test(1,{'y' : 2})
    报错
    test(1,**{'y' : 2})
    输出:1
         {'y': 3}

    6、前项引用

    #错误示范1:
    def foo():
        print('from foo')
        bar()
    foo()
    #错误示范2:
    def foo():
        print('from foo')
        bar()
    
    foo()
    
    def bar():
        print('from bar')
    
    #正确示范:
    def bar():
        print('from bar')
    def foo():
        print('from foo')
        bar()
    foo()
    
    
    
    def foo():
        print('from foo')
        bar()
    def bar():
        print('from bar')
    foo()

    7、递归

    def cale(n):
        print(n)
        if int(n / 2) == 0:
            return n
        else:
            s = cale(int(n/2))
            return s
           
    cale(10)
    

    在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

  • 相关阅读:
    解决:信息中插入avi格式的视频时,提示“unsupported video format”
    java字节数组和16进制之间的转换
    16进制转换字节数组工具类
    如何在ubuntu 12.04 中安装经典的 GNOME桌面
    Ubuntu安装软件提示”需要安装不能信任的软件包”解决办法
    Ubuntu系统下运行Eclipse出现找不到jre的问题的解决方法
    ubuntu添加共享出错
    从scrapy使用经历说开来
    有趣的问题--12 coins problem
    一个奇怪的MySQL错误返回
  • 原文地址:https://www.cnblogs.com/harvey0414/p/10532932.html
Copyright © 2011-2022 走看看