函数装饰器迭代器内置方法总练习题

Posted jackfree

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数装饰器迭代器内置方法总练习题相关的知识,希望对你有一定的参考价值。

函数基础:

1.写函数,计算传入数字参数的和。(动态传参):用不固定参数的*args不限定输入的参数,然后用for循环把每个元素加到一起,函数里的args不用加*


def sum1(*args):
j = 0
for i in args: # 不固定参数输入元祖后,调用不需要加*
j = j + i
print(j)

sum1(1,2,3,4,5,6)
 

2.写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作:原来打算打开文件后,遍历每行数据,每行数据为字符串S--》每行数据用,分割成元素为字符串的列表A--》判断是否需要修改--》修改后赋值给原来的列表A--》再把列表A用‘,’.join(list)转成也就是原来的字符串S--》再用seek,truncate写回原来文件。

也就是说不用弄一个空列表就能实现修改信息写回文件,然而写的时候发现问题出在--》修改后赋值给原来的列表A  这里,要赋值就要再用一次循环,然后用到枚举enumerae来定位索引值,而枚举列表的元素类型为str,刚好原来列表A的元素也是字符串,字符串是不可变的元素,不能通过枚举索引修改元素,所以还是得弄一个空列表l,把修改后的信息加到空列表l里--》做完后感觉用字典的话应该不用像列表一样做这么多for循环,因为字典索引是用key,赋值不用index索引去找

用到的东西:str.split(‘,‘),list.append(str),文件写入方法(for i in list ,f.write(‘ ),seek(0),truncate()),for index,i in enuerate(list) -->if correction-->list[index] = i

def file_change(filename,newinfo,oldinfo):
f = open(filename,‘r+‘)
d = f.readlines() # 信息变成列表,元素是一个一个的字符串,一个字符串就是一行
l = []
n = 0
for i in d:
for i1, e in enumerate(i): # di是每行信息字符串的列表i
e = i.split(‘,‘) # 把每行信息字符串变成以,隔开的列表e
# print(i)
for index2,j in enumerate(e):
if j == oldinfo:
j = newinfo # 每个小的字符串检查,如果有符合的替换掉
e[index2] = j # 通过索引方式把修改后的值赋值回遍历的列表e
n += 1 # 加一个功能,计算修改的次数
e2 = ‘,‘.join(e) # 把列表e用,重新组成字符串e2
l.append(e2) # e2加到空列表l
# print(l)
f.seek(0)
f.truncate() # 清空文件内容
f = open(filename, ‘w‘)
for k in l:
f.write(‘{} ‘.format(k)) # i信息重新写入
f.close()
file_change(‘D:test.txt‘,‘AAA‘,‘BBB‘)

3.写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。:all(),any()只能判断可迭代对象

def check(n):
print(没有空内容‘) if all(n) else print(有空内容‘)

check(None)
TypeError: ‘NoneType‘ object is not iterable


4.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

用到:dict.keys(),dict.values(),dict.items()--K,V

dic = {"k1": "v1v1", "k2": [11,22,33,44]} PS:字典中的value只能是字符串或列表

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def check(i):
for k,v in i.items():
if len(v) > 2:
i[k] = v[:2]
print(i)

check(dic)

答案用的return i和else continue有什么作用?不用输出也是一样

 

解释闭包的概念

不懂,回去再看一遍

 













































以上是关于函数装饰器迭代器内置方法总练习题的主要内容,如果未能解决你的问题,请参考以下文章

装饰器生成器迭代器及python中内置函数的使用

第二模块·函数编程-第1章 函数装饰器迭代器内置方法

第1章·函数装饰器迭代器内置方法

第二模块:函数编程(学位课程):(第1章)函数装饰器迭代器内置方法

python迭代器,生成器,装饰器

4)装饰器迭代器生成器以及内置函数