字符编码and文件处理

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

def change(file_name,f_old,f_new):
    import os
    with open(file_name,'r',encoding='utf-8') as read_f, \
            open('file_name.swp', 'w', encoding='utf-8') as write_f:
        for line in read_f:
            if f_old in line:
                line = line.replace(f_old, f_new)
            write_f.write(line)
    os.remove(file_name)
    os.rename('file_name.swp',file_name)

change('b.txt','alex','egon')

with open('b.txt',encoding='utf-8') as f:
    print(f.read())



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

def ro1(str):
    numbers, letters, spaces, etc = 0,0,0,0
    for i in str:
        if i.isdigit():
            numbers +=1
        elif i.isalnum():
            letters +=1
        elif i.isspace():
            spaces +=1
        else:
            etc +=1
    return(numbers, letters, spaces, etc)

print(ro1('hello world 233 53 26'))

3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def ro2(object):
    if isinstance(object,str) or isinstance(object,list)\
        or isinstance(object,tuple):
        if len(object)>5:
            return True
        else:
            return False
    return None

print(ro2('hello world 233 53 26'))
print(ro2('hell'))
print(ro2(212))

4、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
def ro3(obj):
    ret = False
    for i in obj:
        if i =='':
            ret =True
    return ret

print(ro3('hello world'))
print(ro3(['1','2 ','','k','4 ','3']))
print(ro3((('x','1'),(''),(' z ',''))))

5、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,
并将新内容返回给调用者。
def ro4(obj1):
    if len(obj1) > 2:
        del obj1[2:]
    return obj1

print(ro4([1,2,'h','k','g',3]))

6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,
并将其作为新列表返回给调用者。
def ro5(obj2):
    list = []
    for i in range(1,len(obj2),2):
            list.append(obj2[i])
    return list

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

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


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

方法一:

def ro6(obj3):
    for i in obj3:
        if len(obj3[i]) > 2:
            obj3[i] = obj3[i][0:2]
    return obj3

dic = {"k1": "v1v1", "k2": [11,22,33,44],"k3":"46846"}
print(ro6(dic))
方法二:

def ro7(obj4):
    ret = {}
    for k,v in obj4.items()
        if len(v) > 2:
            ret[k] = v[0:2]
        else:
            ret[k] = v



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值