函数

作者: jealousl | 来源:发表于2018-03-10 15:14 被阅读0次

    函数的作用

    函数的作用:就是将实现某一个功能的代码封装到一个称为‘函数’的模块之中

    定义函数

    在Python之中使用 def 关键字来定义,当函数执行完的时候应当使用return 关键字来返回一个结果
    例如:

    # n以内的和
    def my_sum(n):
    """
    求n以内的和
    
    :param n: 非负整数
    
    :return: n以内的和
    """
        if n == 1:
            return 1
        else:
            return n + my_sum(n-1)
    a = int(input('a = )')
    # 直接使用函数而不需要在写循环
    print(my_sum(a))
    

    函数的参数

    在Python之中函数的参数可以是一个也可以是不确定个数,该参数可以赋默认值也可以不赋默认值

    def foo(n=2):
    """
        计算n的n次幂
    
        :param n: 非负整数
    
        :return: n的n次幂
    """
         return n ** n
    print(foo())
    print(foo(3))
    
    def foo(*args):
        total = 0
        for val in args:
            total += val
        return total
    
    print(foo(1,2,3,4))
    print(foo(1,2,3,4,5))
    

    模块调用函数

    在使用模块调用函数的时候,如果出现相同的函数名应当使用该模块加点使用函数,否则会被覆盖

    l1.py

    def foo():
        print('ljl')
    

    l2.py

    def foo():
        print('zy')
    
    import l1
    import l2
    
    l1.foo()
    # 输出 ljl
    l2.foo()
    # 输出 zy
    

    如果你这样使用:

    from l1 import foo
    from l2 import foo
    
    foo()
    # 输出 zy
    
    from l2 import foo
    from l1 import foo
    
    foo()
    # 输出 ljl
    

    if name == 'main': 的使用规则:

    可以将需要在本Python运行的函数放在其中,那么在运行本页面的Python文本的时候才会运行到该函数

    练习题

    1.判断一个数是不是素数

    def is_prime(num):
        for x in range(2, num):
            if num % x == 0:
                return False
        return True if num != 1 else False
    

    2.判断一个数是不是回文数

    def is_palindrome(num):
        temp = num
        total = 0
        while temp > 0:
            total = total * 10 + temp % 10
            temp //= 10
        return total == num
    

    3.公约数

    def gcd(x, y):
        if x > y:
            return gcd(y, x)
        elif y % x == 0:
            return x
        else:
            return gcd(y % x, x)
    

    Python变量作用域有

    Local - Enclosed - Global - build_in
    如果想改变搜索范围 可以使用global和nonlocal关键字

    def foo():
        # local variable
        # 函数内的局部变量 离开foo函数变量a是无法访问的
        global a  # 定义一个全局的a
        a = 200
        b = 'hello'
    
        def bar():
            nonlocal b
            b = 'good'
            print(a, end=' ')
            print(b, end=' ')
    
        bar()
        print(b, end=' ')
    
    
    foo()
    print(a, end=' ')
    
    """
    输出结果为:200 good good 200 
    """
    

    在实际开发之中我们应当避免使用全局变量,减少全局变量意味着我们可以将变量放在函数之中使用,所以我们在使用的时候应当如下定义:

    def main():
          pass
    
    
    if __name__ == '__main__':
        main()
    

    相关文章

      网友评论

          本文标题:函数

          本文链接:https://www.haomeiwen.com/subject/rgmsfftx.html