欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python入门基础学习(函数)

程序员文章站 2022-05-22 17:02:53
Python基础学习笔记(三) 函数的概念: 所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用 函数的使用包含两个步骤: 1.定义函数 --封装独立的功能 2.调用函数 --享受封装的成果 主要分为:内置函数,标准库函数,第三方库,用户自定义函数 函数的定义与调用: def n ......

python基础学习笔记(三)

 

函数的概念:

所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用

函数的使用包含两个步骤:

1.定义函数 --封装独立的功能

2.调用函数 --享受封装的成果

主要分为:内置函数标准库函数第三方库用户自定义函数

 

函数的定义与调用:

def name(形参):

  #函数内容

  #return 返回的内容

name(实参

 

参数的方法:

1.关键字参数(此方法调用时必须添加对应个数的实参)

def saysome(name,word):
    print("{0} wanted to say {1}".format(name,word))

2..默认参数(此方法调用时无需添加对应个数的实参)

def saysome(name = "hhs",word = "his family to be healthy"):
    print("{0} wanted to say that{1}".format(name,word))

3.可变参数(此方法调用时可以传入任意个参数)

def saysome(*count):
    print(count)
    print(count[1])
saysome('hzq',2,3)
输出:('hzq', 2, 3) 和 2

 

对pycharm的拓展:

断点:

如图:让程序执行至第六行停止

f8(step over)从断点处执行,如果是方法,跳过执行至第七行,输出3个hello

f7(step into)从断点处执行,如果是方法,跳至方法里面执行也就是执行第3行输出hello1

Python入门基础学习(函数)

 

函数文档注释:

在开发中希望给函数添加注释,只需要在函数定义下方添加三个"""xxxx"""(三对引号)

可通过函数名__doc__输出注释文档;也可选中函数通过crtl + q查看内容

Python入门基础学习(函数)

 

匿名函数lambda:

add = lambda x,y : x+y
add(1,2)    
输出:3

 

全局语句global:

global可以为变量赋值为全局变量(一般避免使用)

pi = 3.1415926
ai = 2.1415926
def updatepi():
    global pi  #指定pi不是局部变量而是全局变量,与函数外的pi指向相同的对象
    ai = 2.14  #在函数里出现,为局部变量,与函数外的ai指向不同的对象
    pi = 3.14
updatepi()
print(ai,pi)
输出:ai = 2.1415926,pi = 3.14

 

非局部函数nonlocal:

在嵌套函数中,如果要为定义在上级的函数体的局部变量赋值,可以使用nonlocal

 

递归函数:

即为自调用函数,在函数体内部直接或间接地直接调用自己

常规案例1:使用递归实现阶乘

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)
print(factorial(9))

常规案例2:斐波那契数列

def fib(n):
    if n < 1:
        return -1
    elif n ==1 or n==2:
        return 1
    else:
        return fib(n-1) + fib(n-2)

 

函数的闭包(嵌套调用):

在一个外函数中定义了一个内函数,内函数里引用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包

例子:

def funx(x):  
    def funy(y):
        return x*y  #引用外函数的临时变量x
    return funy    #返回一个内函数
i = funx(8)      #返回一个funy的函数,且funy继承了x=8
print(i)        #输出为:<function funx.<locals>.funy at 0x0037a8a0>
print(i(2))      #输出为16

 

小练习:华为测试校招一面代码题:求两个数的最大公约数

#方法一:辗转相除法求最大公约数
def fun1(a,b): if b > a: a, b = b, a while a % b !=0:  #除至余数为0时跳出循环,取小的数b为最大公因数 c = a % b a = b b = c return b
#方法二:辗转相减法求最大公约数
def fun2(a,b):
    while a - b !=0:
        if a > b:
            a = a - b
        else:
            b = b - a
    return b