11+12+13 课时11+12+13 函数
课程地址,建议1.5倍速观看
函数
函数是代码的一种组织形式;
函数应该能完成一项特定的工作,而且一般一个函数值完成一项工作;
有些语言,分函数和过程两个概念,通俗解释是,有返回结果的叫函数,无返回结果的叫过程,Python没 这个区分;
函数的使用
函数使用需要先定义
使用函数,俗称调用
定义一个函数
只是定义的话不会被执行
def 关键字,后跟一个空格
函数名,自己定义,起名需要遵循命名规则,约定俗成,大驼峰命名只给类用
后面括号和冒号不鞥省,括号内可以有参数
函数内所有代码缩进
def func():
print('我是一个函数')
print('可以调用我哦')
print('我在函数体外')
函数的调用
直接写出函数名字,后面小括号不能省略,括号内内内容根据情况
func() #调用函数
# 函数的参数和返回值
参数:负责给函数传递一些必要的数据或者信息
形参(形式参数):在函数定义的时候用到的参数,没有具体值,只是一个占位符号;
实参(实际参数):在调用函数的时候输入的值
返回值:调用函数的时候的一个执行结果;
返回可以有,也可以没有,但是建议返回一下结果;
如果没有值需要返回,我们推荐使用 return None 表示函数结束;
函数一但执行return,则函数立即结束;
如果函数没有return关键字,则函数默认返回None;
def hello(person):
print('{0}, 你好吗?'.format(person))
print('{}, 你看见我加菲菲了吗?'.format(person))
调用函数,先定义一个实参,需要把实参 传入形参中
name = 'jack'
hello(name)
重复使用函数,参数变化一下,用一个实实在在的参数值 替换掉占位的那个形式参数;
name='刘亦菲'
hello(name)
hello('刘德华')
name=hello('舒淇')
print(name)
help 负责随时为你提供帮助
help(print())
栗子
九九乘法表,一步一步慢慢拆解,慢慢组合,由点及面
def cheng_fa_biao(cheng_shu):
for i in range(1,cheng_shu+1): #控制外循环,每次从1开始
for ii in range(1,i+1): #内循环,被乘数的最大值等于乘数,每次从1开始
print("{0} * {1} = {2}".format(ii,i,i*ii),end='\t')
print() #执行完一层循环,则换行
return None
cheng_fa_biao(6)
#改造一下,函数套函数
九九乘法表
def print_line(i):
print('这是第 {0} 行!!!'.format(i))
def cheng_fa_biao(cheng_shu):
#print("{0} * {1} = {2}".format(cheng_shu,bei_cheng_shu,cheng_shubei_cheng_shu))
for i in range(1,cheng_shu+1): #控制外循环,每次从1开始
print_line(i)
for ii in range(1,i+1): #内循环,被乘数的最大值等于乘数
print("{0} * {1} = {2}".format(ii,i,iii),end='\t')
print() #执行完一层循环,则换行
return None
cheng_fa_biao(6)
编译
先编译,再执行,编译过程中有问题会暴漏出来(例如语法规则、中英文...)
参数
普通参数
def pu_tong(name, age, gender):
print('my name is {0}, age:{1}, gender:{2}'.format(name,age,gender))
pu_tong('jack', 18, 'man')
默认参数
def mo_ren(name, gender, age=18):
print('my name is {0}, age:{1}, gender:{2}'.format(name,age,gender))
pu_tong('jack','man') #给了默认参数,可以不写,不写就用默认,写了就不用默认
关键字参数(不记得参数的位置了,或者就是想明确的写出来给参数的赋值,看起来明明白白)
def guan_jian_zi(name, age, gender):
print('my name is {0}, age {1}, gender {2}, i love {0}.'.format(name, age, gender))
guan_jian_zi(name='刘亦菲', age=28, gender='女')
收集参数