DAY10课下作业

1、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成批量修改操作。

 

#a.txt内容:egon

def modify_file(filename,old,new):

   import os

   with open('a.txt','r',encoding='utf-8') as read_f,\

       open('.bak.swap','w',encoding='utf-8') as write_f:

     for line in read_f:

       if old in line:

         line=line.replace(old,new)

       write_f.write(line)

   os.remove('a.txt')

   os.rename('.bak.swap','a.txt')

modify_file(r'E:\Program Files (x86)\Python3.7\练习\a.txt','egon','alex')

 

2、写函数,计算传入字符串中【数字】、【字母】、【空格】 以及 【其他】的个数。

 

def check_str(msg):

  res={'num':0,'string':0,'space':0,'other':0,}

     for s in msg:

       if s.isdigit(): res['num']+=1

       elif s.isalpha(): res['string']+=1

       elif s.isspace(): res['space']+=1

       else: res['other']+=1

       return res

res=check_str('1.success is from diligence')

print(res)

 

3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

 

def func(n):

  print('判断传入对象的长度是否大于5')

  if len(n) >= 5:

    return True   

  else:

    return False

content = input('请输入您要判断的内容:')

print(func(content))

 

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

 

def func(n):

  if len(n) > 2:

    n=n[0:2]

  else:

    n=n

  return n

print(func(['a',1,'b',2,'c',3,'d']))

 

5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

 

def func(n):

  return n[::2]

print(func([1,2,3,4,5,6,7,8,9]))

 

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

  dic = {'k1': 'v1v1', 'k2': [11,22,33,44]}

  PS:字典中的value只能是字符串或列表。

 

dic = {'k1': 'v1v1', 'k2': [11, 22, 33, 44]}

def func(dic):

  n = {}

  for keys, value in dic.items():

    if len(value) > 2:

      n[keys] = value[0:2]

    else:

      n[keys] = value

  return n

print(func({'k1': 'v1v1', 'k2': [11, 22, 33, 44]}))

posted @ 2018-09-25 15:45  夜夜夜夜夜i  阅读(120)  评论(0编辑  收藏  举报