python爬虫第六节课及作业答案

时间:2022-07-08 20:10:21

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)