函数的介绍 1.什么是函数:为什么要有函数 答:(1)组织代码结构不清晰 可读性差 (2) 代码冗余 (3) 管理维护的难度很大 扩展性 (4) 在具备某一个功能的工具就是程序中的函数 事先准备工具的过程-->函数的定义 --> 拿来就用 --> 函数的调用 (5) 函数的执行过程必须遵循:先定义 在调用 2.函数的定义 def 函数名(参数1,参数2,...): ''' 文档注释 ''' pass --> 代码块 return 值 ##3.定义阶段 def print_sym(sym,count): ##代码块 print(sym*count) ##调用阶段 print(print_sym) ##打印函数内存地址 print_sym('#',30) ##传参 def print_msg(msg): print(' 33[046m %s 33[0m' %msg) print_msg('hello world') #4.定义函数的三种类型: 1.有参数函数: 参数是函数体代码接收外部传入的值 def max2(x,y): x=10 y=3 if x > y: print(x) else: print(y) max2(100,101) #2.无参函数: 当函数体的代码逻辑不需要函数的调用者传入值的情况下 就无参 def interactive(): name=input('username>>:').strip() pwd=input('password>>').strip() print(name,pwd) interactive() #定义时无参 意味着调用时也无须传入参数 登录程序 username_of_db='zhang' pwd_of_db='123' def interactice(): username_of_inp=input('username:').strip() pwd_of_inp=input('password:').strip() return username_of_inp,pwd_of_inp def auth(uname,pwd): if uname == username_of_db and pwd == pwd_of_db: print('登录成功') else: print('登录失败') res=interactive() auth(res[0],res[1]) 写一个函数的方式 def auth(): ''' 注释:这是一个认证功能 ''' pass return def put(): ''' 上传功能 ''' pass return def get(): ''' 下载功能 ''' pass return def main(): get() put() get() if __name__ == '__main__': main() 5.函数的对象 1.函数是第一类对象,即函数可以当作数据传递 1.可以被引用 x=1 y=x def bar(): print('from bar') f=bar #函数被引用 f() 2.可以当参数传入 def func(a): print(a) def bar(): print('from bar') def wrapper(func): #func=bar func() #bar wrapper(bar) 3.可以当中函数的返回值 x=1 def foo(): return x res=foo() print(res) def bar(): print('from bar') def foo(func): return func f=foo(bar) print(f) #打印函数的内存地址 f() 4.可以当容器类型的元素 def get(): print('from get') def put(): print('form put') l=[get,put] print(l) A=l[0]() #例子1: def auth(): print('登录.....') def reigster(): print('注册.....') def search(): print('查看.....') def transfer(): print('转账.....') dic={ '1':auth, '2':reigster, '3':search, '4':transfer, } # print(dic) #打印所有的函数内存地址 # print(dic['2']) #拿到函数reigster的内存地址 dic['2']() #运行函数 拿到返回值 def interactive(): while True: print(''' 1 认证 2 注册 3 查看 4 转账 ''') choice=input('>>>').strip() if choice in dic: dic[choice]() else: print('非法操作') interactive() l=[auth,reigster,search,interactive] print(l) a=l[l]()
函数的返回值 什么是函数的返回值 函数体代码运行完毕后需要一个返回结果给调用者 返回值的三种形式 1.没有return,返回值None def func(): pass res=func() print(res) 2.return后跟一个值 返回值的本身 def func1(): return 1 res=func1() print(res) 3.return可以逗号分隔 返回多个值 会返回一个元祖给调用者 def func2(): return 1,2,[1,2,3] res=func2() print(res) 4 return注意点: return 返回的值 没有类型限制 函数内可以写多个return 执行过一次 函数就立刻结束 并把return后的值作为本次调用的返回值 def func3(): print('first') return 1 print('second') return 2 print('third') return 3 res=func3() print(res)