---恢复内容开始---
一.函数的介绍:
1.为什么要用函数,什么是函数?
①组织结构不清晰,可读性差。
②代码冗余
③管理维护难度大,扩展性差。
具备某一功能的工具就是程序中的函数。
事先准备工具的过程就是函数的定义
拿来就用就是函数的调用
举个栗子:修理工要下下水道修理,事先需要准备一个工具箱,工具箱就是函数的一个定义过程,之后下到下水道需要拿相应的工具就是函数的调用。
重点:所以函数的使用必须遵守规则:先定义,后调用。
二.函数的基本语法
1. def 函数名(参数1,参数2,参数3...............)
'''
文件的解释
'''
代码一
代码二
代码三
return值
def:定义函数的关键字
函数名:用来调用函数的
代码块:实现函数的功能
return:返回函数的值
举几个例子:
1.1定义的阶段:
def print_sym(sym*count)
print_sym(sym*count)
print_sym(sym*count)
print_sym(sym*count)
print_sym(sym*count)
print_sym(sym*count)
print_sym(sym*count)
print_sym(sym*count)
1.2调用函数:函数名加上括号就是在调用函数
print_sym('#',8)
2.定义函数的三种类型:
2.1有参函数:参数的函数体代码用来接收外部的值
def max2(x,y)#x=10,y=4
if x>y:
print(x)
else:
print(y)
2.2无参函数:函数体的代码逻辑不需要调用者的掺入的情况下,就无参
def func():
print('------------------------')
print('-------soft fun-------')
print('------------------------')
func()
2.3空函数体:函数体为pass
def put()
'''
上传功能
:return:
'''
pass
def get()
'''
下载功能
:return:
'''
pass
3.调用函数:
函数遵守的规则:先定义后使用
注意:没有事先调用的函数就相当于直接调用一个不存在变量名
①定义阶段:只检测语法,不执行函数体代码
②调用阶段:根据函数名找到函数的内存地址,然后执行函数体代码
③函数名加个括号就是定义函数
举两个例子:
①def foo():
print(from foo )
bar()
foo()#报错,函数名bar()没有被定义,第二步执行的时候就会报错
②def bar()
print(from bar)
def foo()
print(from foo)
bar()
foo()
③def foo()
print(from foo)
bar()
def bar()
print(from bar)
foo()
②③本质上都是事先定义了函数名,最终函数体执行。定义不分先后
3.1调用函数的三种形式:
①def func():#直接调用,无返回值
print('from func')
func()
②def max2(x,y):#有参数调用,有返回值
if x>y:
return x
else:
retrun y
res= max2(10,3)
print(res)
③ def max2(x.y)
if x>y:
return x
else:
return y
res=max2(max2(10,3),11)#可以嵌套比较返回值
4.函数的返回值:
什么时候有返回值?
函数体代码运行结束后需要一个返回结果给调用者
返回值有三种形式:
①没有return,返回值为None
def func():
pass
res=func()
print(res)
②retrun后跟一个值,返回值本身
def func1()
return 1
res=func1()
print(res)
③return可以用逗号分开,返回多个值,会返回一个元组给调用者
def func2()
return 1,2,[1,2,3]
res=func2()
print(res)
注意点:1.return返回值没有类型的限制
2.return是函数结束的标志,函数内可以写多个return,但执行一次函数就立即结束,并把return后的值作为函数的返回值
例如:def func3():
print(first)
return 1
print(second)
return 2
print(third)
return 3
res=func3()
print(res)
---恢复内容结束---