day 0313函数的初识
1.函数的定义:
定义:def 关键词开头,空格之后接函数名和圆括号(),还有最后一个‘:’
def是固定的,定义函数的关键字。
空格-是为了将关键字和函数名分开,必须有的。
函数名:只能包括字符串,下划线和数字,不能是数字开头,尽量要短,能表达清楚函数功能。
括号:必须带上
注释:每一个函数应该对功能和参数进行说明,增恰肮代码的可读性。
2.函数的调用:函数名() 要记得加上括号。
3.函数的返回值:
return 关键字 后面接着是需要返回的值。
情况:
A.没有返回值
不写return的情况下,会默认返回一个None
def fun(): print('hello world') fun() print(fun())
结果:
hello world
hello world
None
return的出现是结束函数的,及时出现return 不写返回值,系统也会返回值None。
def fun():
print('hello world')
return
print('Ada lace')#验证return终止函数运行
fun()
print(fun())
结果: hello world hello world None
B.返回一个值:
def fun(): s1= 'Ada lace' length=0 for i in s1: length+=1 return length#单一的返回值 print(fun()) 结果: 8
C.返回多个值:
#多个值返回会被组织成元组返回给调用者。也可以用多个值来接收。
def fun1(): return 1,2,3,4 def fun2(): return 1,[11,22],{'key':159},'ada lace' print(fun1()) print(fun2()) 结果: (1, 2, 3, 4)#多个值返回会被组织成元组返回给调用者。也可以用多个值来接收。 (1, [11, 22], {'key': 159}, 'ada lace')
关于返回值是多个值 怎么去接收他们的数据:
def fun(): return 1,[11,22],{'key':159},'Ada lace ' # 返回多个值,用一个变量去接收 ret=fun() print(ret) #返回多个值,用多个变量接收,返回几个值就用几个变量去接收 a,b,c,d=fun() print(a,b,c,d) 结果: (1, [11, 22], {'key': 159}, 'Ada lace ') 1 [11, 22] {'key': 159} Ada lace
D.函数的参数:
实参和形参:
函数调用时用的参数就是实参(实际参数)
定义函数时用的参数就是形参(形式参数)
把实际参数传递给形式参数的过程就是传参(传递参数)
A. 实参角度传参:
1.按照位置进行传参:位置参数
def fun(a,b): sum=a+b return sum print(fun(11,56))#位置参数直接传递数值 结果:67
2.按照关键字传值:关键字参数
def fun(a,b): sum=a+b return sum print(fun(a=56,b=15))#关键字a,b参数直接传递数值 结果:71
3.位置,关键字形式混用:混合传参
注意:这里位置参数必须在关键字参数前面。
形式参数只能赋值一次。
def fun(a,b): sum=a+b return sum print(fun(56,b=11))#位置参数56,关键字参数b=11直接传递数值 结果:67
B.形参角度传参:
1.参数内有设置默认值:
def fun(name,age,sex='male'):#将变化很小的值设置成默认值 print(name,age,sex) print(fun('张学友',23))#没有传参就返回默认值。 print(fun(name='Blake shelton',age=55,sex='female')) 结果: 张学友 23 male None Blake shelton 55 female None
2.默认参数是一个可变的数据类型
def fun(a,l=[]):#这里L是一个可变的数据类型 l.append(a) print(l) print(fun(11,l=[11,22,123])) 结果: [11, 22, 123, 11] None