python基础 函数
教学监督热线:400-1567-315
1.函数的定义
2.函数的传参
3.return
4.lambda匿名函数
1.函数的定义
''' function 功能,函数 问题:一个由数字组成的列表,每次取其中两个判断大小,最后找出这个列表中最大的数 函数就是对代码进行一个封装。把实现,某一功能的相同代码,进行封装到一起。下次需要使用时,就不需要再进行代码编写,直接调用即可。 好处: 增加代码的复用性,增加代码可读性,减少代码的编写量,降低维护成本 函数可以看成,解决某类问题的 '工具' 定义方法: '''
def function_name(params):
block
return expression(表达式)/value
''' def 关键字表示定义一个函数 function_name 函数名,和变量名的命名要求相同,以字母和_开头,可以包含字母、数字和_ params 表示参数,可以是零个,一个 或者多个参数,函数参数不用指定参数类型 '''
2.python中函数的参数详解
1.必备参数:参数没有默认值
2.默认参数:参数有默认值,调用函数是可以传参也可以不传参,不传参时,参数是默认值
3.不定长参数: 可在定义时定义,也可在传入时传入
定义方法: def function_name(*args,**kwargs):
*args 将传入参数包装成元组
**kwargs将传入参数包装成字典
3.return
““
return有两个作用:1.用来返回函数的运行结果,或者调用另外一个函数。比如max()函数
2.函数结束的标志。只要运行了return,就强制结束了函数。return后面的程序都不会被执行。
如果函数中没有写return,其实函数运行结束时,默认执行了 return None
return语句的位置是可选的,不是固定出现再函数的最后,可以自定义在函数中的任何地方。
““
4.lambda匿名函数
““
没有函数名的函数
g = lambda x:x+1
lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解
lambda的应用场景:
1.有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没必要用def 来定义,这个时候就可以用lambda。
2.函数都支持函数作为参数,lambda 函数就可以应用
““
3.重点:
1.理解函数的概念和作用
2.熟练掌握函数的定义和调用
第六次作业
1 判断1 - 100 内能够被 3 和 5 整除的数,用while和for循环来做
方法1
li1=[]
for i in range(1,101):
if i %3==0 and i%5==0:
li1.append(i)
print(‘100以内能被3和5整除的数有:%s’ % li1)
#方法2
i=1
li=[]
while i<101:
if i%3==0 and i%5==0:
li.append(i)
i+=1
print(‘100以内能被3和5整除的数有:%s’ % li)
2.定义一个函数,必须包含4种参数形式,然后打印这4个参数,最后返回’OK’。
def fun4(*args,b,m=2,**kwargs): #默认将我们的传入参数,包装成元组
print(‘必备参数’,b)
print(‘默认参数’,m)
print(‘arg:’,args)
print(‘kwargs:’,kwargs)
return ‘OK’
fun4(1,2,3,4,5,m=6,b=7,c=1)
3.定义一个函数,能够输入字典和元组。将字典的值(value) 和 元组的值交换,
交换结束后,打印并且返回 字典和元祖。
错误示范
def Foo():
a=input(‘请输入一组字典:’)
b=input(‘请输入一组元祖:’)
t=a
a=b
b=t
print(‘交换后的元祖是%s,交换后的字典是%s’%(b,a))
Foo()
老师做的
def exchange(*args,**kwargs):
tu = list(args)
dic = kwargs
print(tu,dic)
j=0 #元组的索引值
if len(dic) <= len(tu): # 字典len小于或者等于tu的情况下
for i in dic: # 遍历字典的key(键)–》i
print(i,dic[i],tu[j])
dic[i],tu[j] = tu[j],dic[i]
j+=1
else: #当字典元素多于元组时,执行以下代码
k=0
while k < len(tu):
for i in dic:
dic[i],tu[k] = tu[k],dic[i]
k+=1
tu = tuple(tu)
print(tu,dic)
exchange(1,2,a=11,b=22,c=33)