1.什么是函数?
在程序具备某一功能的工具就是函数
事先准备好工具==>函数的定义
遇到应用场景,拿来就用==>函数的调用
分为两大类:
1.内置函数
2.自定义函数
2.为何要用函数?
1).代码冗(rong)余
2).程序的组织结构不清晰,可读性差
3).扩展性差
3.如何使用函数
函数的使用必须遵循一个原则:
1).先定义
定义语法:
def 函数名(参1,参2,参3,...): """ 文档注释 """ 代码1 代码2 代码3 ... return 值
2).后调用()
函数名()
一,定义阶段:只检测语法,不执行代码
二,调用阶段:开始执行函数体代码
# 示范一: def foo(): print('from foo') bar() foo() # 示范二: def bar(): print('from bar') def foo(): print('from foo') bar() foo() #示范三: # 定义 def foo(): print('from foo') bar() def bar(): print('from bar') # 调用 foo()
三,定义函数的三种形式
1,无参函数:应用场景仅仅只是执行一些操作,比如与用户交互,打印
2,有参函数:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值最小值
3,空函数:设计代码结构
小结:
定义时无参,意味着调用时也无需传入参数
定义时有参,意味着调用时则必须传入参数
#定义阶段 def tell_tag(tag,n): #有参数 print(tag*n) def tell_msg(): #无参数 print('hello world') #调用阶段 tell_tag('*',12) tell_msg() tell_tag('*',12) ''' ************ hello world ************ '''
def auth(user,password): ''' auth function :param user: 用户名 :param password: 密码 :return: 认证结果 ''' pass def get(filename): ''' :param filename: :return: ''' pass def put(filename): ''' :param filename: :return: ''' def ls(dirname): ''' :param dirname: :return: ''' pass #程序的体系结构立见 空函数
四.调用函数
函数的调用: 函数名加括号
先找到名字,根据名字调用代码
调用函数的三种形式:语句形式:foo()
表达式形式:3*len('hello')
当中另一个函数的参数: rang(len('hello'))
五,函数的返回值
1,什么是函数的返回值?
返回值是函数体代码的运行成果
2,为何要有返回值?
需要拿到函数的处理结果做进一步的处理,则函数必须有返回值
3,如何用
return 返回值的特点:
1): 返回的值没有类型限制,也没有个数限制
I: renturn或者函数没有return:返回值None
II: return 值 : 返回的就是该值本身
III:return 值1值2值3:返回元组(值1 值2 值3)
2): return是函数结束运行的标志,函数内可以有多个return
但只要执行一次函数就立即结束,并且将return后的值当做本次调用的结果返回
def func(): # return 1,1.2,'aaa',[1,2,3] pass res=func() print(res) #运行结果: None
def func(): print('aaaa') return 1 print('bbb') return 2 print('ccc') return 3 func() #运行结果 aaaa