函数的介绍与方法

函数的介绍
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('\033[046m %s\033[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) 

  

posted @ 2018-09-23 11:30  人生信条~~  阅读(209)  评论(0编辑  收藏  举报