1.今日内容
- 初识函数
- 函数的结构
- 函数的调用
- 函数的返回值
- 函数的传参
2.具体内容
-
初识函数
''' 面向过程编程: 1.代码重复 2.代码可读性不高 ''' l1 = [1,2,3] def new_len(): count = 0 for i in l1: count += 1 print(count) new_len() #函数是以功能为导向,可以减轻代码的重复性,增强代码的可读性
-
函数的结构
l1 = [1,2,3] def new_len(): count = 0 for i in l1: count += 1 print(count) new_len() ''' def 关键字:定义一个函数,紧跟一个空格 new_len 函数名:与变量命名规范一致,一定要具有可描述性 (): 结构需要,传参使用 : 分隔符 tab键:四个空格,缩进,函数体 '''
-
函数的调用
#函数的执行写多少次,执行多少次 new_len() #函数名() 函数的执行者,调用者 new_len() for i in range(3): new_len()
-
函数的返回值
-
return
- 结束函数
l1 = [1,2,3] def new_len(): print(1) print(2) return print(3) new_len()
- 函数中没有return或者只写了一个return,函数的执行者得到的是None
l1 = [1,2,3] def new_len(): count = 0 for i in l1: count += 1 return print(new_len())
- 函数中return后面是单个值,函数的执行者得到的是这个值(不改变值的类型)
def func(): return {1:'name'} print(func())
- 函数中return后面是多个值,函数的执行者得到的是一个元组
def func(): return 1,[12,],'name' print(func()) def func(): return 1,[12,],'name' a,b,c = func() print(a,b,c) def func(): return 1 > 2 print(func())
-
-
函数的传参
def new_len(a): count = 0 for i in a: count += 1 return count l1 = [1,2,3] print(new_len(l1))
-
实参:
- 位置参数
#位置参数 :从左至右,按照顺序,一一对应 def book(name,author,types): print(f'书名{name},作者{author},类型{types}') book('为什么学生不喜欢上学','丹尼尔','教育学') #函数,接受两个数字的参数,将较大的数字返回 def comp(a,b): if a > b: return a else: return b # 三元运算符:简单的if else a1 = 2 b2 = 1 ret = a1 if a1 < b2 else b2 print(ret) def comp(a,b): return a if a > b else b print(comp(1,1234))
- 关键字参数.一一对应
def books(name,author,types): print(f'书名{name},作者{author},类型{types}') print(books(types = '教育学',author = '丹尼尔',name = '为什么学生不喜欢读书'))
- 混合参数。关键字参数一定在位置参数后面,一一对应
def books(name,author,types): print(f'书名{name},作者{author},类型{types}') print(books('为什么学习不喜欢上学',types = '教育学',author = '丹尼尔'))
-
形参
-
位置参数.与实参、位置参数一样
-
默认参数。一定在位置参数后面,不传参即沿用默认参数
def books(name,author,types = '教育学'): print(f'书名{name},作者{author},类型{types}') print(books('为什么学生不喜欢上学','丹尼尔')) #默认 print(books('为什么学生不喜欢上学','丹尼尔',types = '教育学')) print(books('为什么学生不喜欢上学','丹尼尔','教育学'))
- 动态参数
- 仅限关键字参数
-
-