zoukankan      html  css  js  c++  java
  • 函数的介绍与方法

    函数的介绍
    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 %s33[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) 

      

  • 相关阅读:
    el自定义函数库
    DOM4J
    【转载】SqlServer日期时间函数
    【原创】C#认识/理解/运用 StreamReader,StreamWriter,StringReader,StreamWriter
    【原创】C#认识/理解/运用 FileStream
    【原创】C#操作XML(带命名空间)
    【原创】ASP.NET MVC3使用html编辑器(kindeditor)
    【原创】ASP.NET MVC3 从零开始一步步构建Web
    【转载】MVC使用jqGrid
    【原创】C#使用HttpWebRequest,HttpWebResponse
  • 原文地址:https://www.cnblogs.com/zhangcaiwang1/p/9692280.html
Copyright © 2011-2022 走看看