函数
为什么要有函数?什么是函数?
1.组织结构不清晰,可读性差
2.代码冗余(重复的代码)
3.管理维护的难度极大,扩展性差

具备某一个功能的工具就是程序中的函数
事先准备工具的过程------》》函数的定义
拿来就用-------》》函数的调用

所以函数的使用必须遵循:先定义,再调用

注意:没事先定义函数而直接调用,就相当于在引用一个不存在的变量名

 

函数的定义
“““
1.语法
def 函数名(参数1,参数2,....):
"""
文档描述

"""
代码1
代码2
代码3
return 值


def:定义函数的关键字
函数名:是用来调用函数的,函数名的命名必须能反映出函数的功能
文档描述:推荐写上,用来增强函数的可读性
代码块:函数的功能实现代码
return:

”””

不用函数:
print('========================')
print('hello egon')
print('========================')

1.定义阶段
def print_sym(sym,count):
      print(sym*count) #定义函数就是把一堆代码,找个内存空间放起来,内存地址给函数名

def print_msg(msg):
      print(' %s' %msg)
2.调用阶段(函数名加括号就是在调用函数)
print(print_sym) #内存地址
print_sym('#',30)
print_msg('hello egon')
print_sym('#',30


2.定义函数的三种类型:
2.1有参函数,参数是函数体代码用来接收外部传入值的
def max2(x,y):
     if x>y:
          print(x)
     else:
          print(y)
max2(100,101)

2.2无参函数:当函数体的代码逻辑不需要函数的调用者渗入的情况下,就无参

def func():
print('.........................')
print('....soft run.............')
print('.........................')


def interactive():
         name=input('username>>:').strip()
         pwd=input('password>>:').strip()
         print(name,pwd)

interactive() #定义时无参,意味着调用时也无须传入参数


2.3空函数,函数体为pass
def auth():
"""
这是一个认证功能
:return:

"""
pass #(占位符)

 

练习:有参
uname_of_db='egon'
pwd_of_db='123'

def interactive():
        uname_of_inp=input('username>>:')
        pwd_of_inp=input('password>>: ').strip()
        return uname_of_inp,pwd_of_inp

def auth(uname,pwd):
       if uname == uname_of_db and pwd == pwd_of_db:
               print('登陆成功')
       else:
               print('登陆失败')


res=interactive()
x=res[0]
y=res[1]
# print(x)
# print(y)

auth(x,y)  #(认证功能)


调用函数:函数名加括号即调用函数

定义阶段:在定义阶段只检测语法,不执行函数体代码

调用阶段:根据函数名找到函数的内存地址,然后执行函数体代码

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

foo()


定义阶段:
def foo():
      print('from foo')
bar()
def bar():
      print('from bar')
调用阶段:
foo()


调用函数的三种形式

形式一:
def func():
      print('from,func')
fun()

形式二:
def max2(x,y):
      if x>y:
           return x
      else:
           return y
       res=max2(10,3)
print(res)


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

       res=max2(10,3)*100
print(res)

形式四:

res=max2(max2(10,3),11)
print(res)


函数的返回值:
什么时候应该有返回值:
函数体代码运行完毕后需要一个返回结果给调用者


返回值有三种形式:
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)


return注意点:
1、return返回值的值,没有类型限制
2、return是函数结束的标志,函数内可以写多个return,但执行一次,函数就立刻结束,并把return后的值作为本次调用的返回值。

 

posted on 2018-03-26 17:13  muzinianhua  阅读(101)  评论(0编辑  收藏  举报