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

三、函数&函数进阶&闭包与装饰器

程序员文章站 2022-03-13 14:29:05
一、函数 1、什么是函数:函数就是具备某一功能的工具 函数的使用必须遵循先定义、后调用的原则 事先准备工具的过程即函数的定义 拿来就用即为函数的调用 函数分为两大类:1、内置的函数 2、自定义的函数 2、为什么要用函数: 2.1 程序的组织结构不清晰、可读性差 2.2 日积月累冗余代码过多 2.3 ......

一、函数

  1、什么是函数:函数就是具备某一功能的工具

    函数的使用必须遵循先定义、后调用的原则

      事先准备工具的过程即函数的定义

      拿来就用即为函数的调用

    函数分为两大类:1、内置的函数   2、自定义的函数

  2、为什么要用函数:

      2.1 程序的组织结构不清晰、可读性差

      2.2 日积月累冗余代码过多

      2.3 程序的可扩展性极差

  3、怎么用函数

  3.1定义函数  

  3.1.1 语法 

# def 函数名(参数1,参数2,参数3,...):
#     """
#     文档注释
#     """
#     code1
#     code2
#     code3
#     ...
#     return 返回值

  3.1.2 定义函数阶段发生哪些事:只检测语法,不执行代码

def foo(): # foo=函数的内存地址
    print('first')
    print('sencod')
    print('asdfsadfasdfas')
    print('third')
foo()
# # 定义阶段
def foo():
    print('from foo')
    bar()

def bar():
    print('from bar')

#调用阶段
foo()

 3.1.3 定义函数的三种形式

        1.无参函数

def bar():
    print('from bar')
bar()

        2.有参函数

def func2(x,y):
    # x=1
    # y=3
    if x > y:
        print(x)
    else:
        print(y)

func2(1,3)

        3.空函数(做占位使用)

def foo():
    pass

 3.2调用函数

    语法:函数名()   

    调用函数发生了:1、根据函数名找到函数的内存地址  2、函数的内存地址加括号可以触发函数体代码的执行

    调用函数的三种方式:

      3.2.1 语句

def f1():
    print('from 1')
f1()

      3.2.2表达式

def max2(x,y):
    if x > y:
        return x
    else:
        return y

res=max(1,2)*10
print(res)

      3.2.3当做参数传给其他函数

def max2(x,y):
    if x > y:
        return x
    else:
        return y

res=max2(max2(1,2),3)
print(res)

 

 4、函数的返回值

  1、什么是函数的返回值:函数体代码运行的一个成果

  return 值:

    返回值没有类型限制、返回值没有个数限制

      逗号分割多个值:返回一个元组

      一个值:返回一个值

      没有return:默认返回None

三、函数&函数进阶&闭包与装饰器
def login():
    while True:
        username=input('name>>: ').strip()
        pwd=input('password>>:').strip()
        if username not in user_dic:
            print('not found')
            continue
        if pwd != user_dic[username]:
            print('pwd error')
            continue
        print('login successful')
        return username
print(login())
return 登录名
# return是函数结束的标志:
# 函数内可以有多个return,但只要执行一次,整个函数就立即结束,并且将return后的值当作本次调用的结果返回

二、函数的参数

  1、函数的参数分为两大类:形参、实参

    形参:指的是在定义函数时,括号指定的参数,本质就是变量名

    实参:指的是在调用函数时,括号内传入的值,本质就是值

  只有在调用函数时才会在函数体内发生实参(值)与形参(变量名)的绑定关系

  该绑定关系只在调用函数时临时生效,在调用函数结束后就解除绑定

    def foo(x,y): #x=1,y=2
        print(x)
        print(y)
    # a=1
    # b=2
    # foo(a,b)
    foo(1,2)

  2、位置参数

    未完待续,吃饭去