作业10

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

import os
def alter(file,old_str,new_str):
    with open(file, "r", encoding="utf-8") as f1, open("{}".format(file), "w", encoding="utf-8") as f2:
        for line in f1:
            if old_str in line:
                line = line.replace(old_str, new_str)
            f2.write(line)
    os.remove(file)
    os.rename("{}".format(file), file)

alter('file1','zc','牛逼')

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

def num(str1):
    a = b = c = d = 0
    for i in str1:
        if i.isdigit():
            a += 1
        elif i.isalpha():
            b += 1
        elif i.isspace():
            c += 1
        else:
            d += 1
    print("数字{}个,字母{}个,空格{}个,其他字符{}个".format(a,b,c,d))
num(input("请输入一个字符串:"))

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

def is_len(c):
    if len(c)>5:
        return  True
    else:
        return False
a='abvncm'
b=['a','b','c','d']
c=(1,2,3,4)
print(is_len(a))
print(is_len(b))
print(is_len(c))

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

def two_len(**kwargs):
      for k, v in kwargs.items():
  ​    if len(v) > 2:
              kwargs[k] = v[:2]
      return kwargs
  print(two_len(x='12', y='345', c='byw'))
  ​

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

def num(x):
    list=[]
    for line in x:
        if line % 2==1:
            list.append(line)
    return list

c=num([11,22,33,44,55,66])
print(c)

6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表

def func3(dic):
    a={}
    for k,v in dic.items():
        if len(v) > 2:
            a[k]=v[0:2]
    return a
print(func3({'k1':'abc','k2':[1,2,3],'k3':('a','c')}))
posted @ 2020-03-18 16:02  小子,你摊上事了  阅读(104)  评论(0)    收藏  举报