zoukankan      html  css  js  c++  java
  • day14

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

    import os
    '''
    egon is 大帅比
    egon is 流弊
    '''
    
    def update_file(src_file, select_content, dsc_content):
        '''
        修改文件功能
        参数: 文件地址 ,原内容 ,新内容
        '''
        with open(r'{}'.format(src_file), mode='r', encoding='utf-8')as f:
            res = f.read()
            res1 = res.replace(f'{select_content}', f'{dsc_content}')
        with open(r'{}'.format(src_file), mode='w', encoding='utf-8')as f1:
            f1.write(res1)
            return '修改成功'
    
    
    tag = True
    while tag:
        src_file = input('请输入源文件地址:').strip()
        if os.path.exists(src_file):
            with open(r'{}'.format(src_file), mode='r', encoding='utf-8')as f:
                res = f.read()
                print('{}'.format(res))
            while True:
                select_content = input('请输入想要修改的内容:').strip()
                if select_content in res:
                    dsc_content = input('请输入内容修改为:').strip()
                    msg = update_file(src_file, select_content, dsc_content)
                    print(msg)
                    tag = False
                    break
                else:
                    print('内容不存在,请重新输入!')
                    continue
        else:
            print('源文件不存在,请重新输入地址!')
    

    结果展示:

    请输入源文件地址:/Users/tophan/2020_python/day13/a.txt
    egon is 大帅比
    egon is 流弊
    
    请输入想要修改的内容:tank
    内容不存在,请重新输入!
    请输入想要修改的内容:egon
    请输入内容修改为:tank
    修改成功
    

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

    def count(res):
        '''统计字符功能'''
        list1 = [] #数字组
        list2 = [] #字母组
        list3 = [] #空格组
        list4 = [] #其他组
        for i in res:
            if i.isnumeric():
                list1.append(i)
            elif i.isalpha():
                list2.append(i)
            elif i.isspace():
                list3.append(i)
            else:
                list4.append(i)
        print(f'数字个数:{len(list1)},字母格式:{len(list2)},空格个数:{len(list3)},其他个数{len(list4)}')
    
    count('hello world 123 #@$') #数字个数:3,字母格式:10,空格个数:3,其他个数3
    

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

    def len_judge(*args):
        # print(args)
        if len(args) > 5:
            return True, f'长度为{len(args)}'
        else:
            return False, f'长度为{len(args)}'
    
    
    a = 'hello'
    b = ['a', 2, 'hh', '你好']
    c = (1, 3, 'a', '你好', '11', 22)
    flag, msg = len_judge(*a)
    print(flag, msg) #False 长度为5
    flag, msg = len_judge(*b)
    print(flag, msg) #False 长度为4
    flag, msg = len_judge(*c)
    print(flag, msg) #True 长度为6
    

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

    def len_list(res):
        if len(res) > 2:
            res = res[0:2]
            return res
    
    res = len_list(['11', 22, '你好'])
    print(res) #['11', 22]
    

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

    def check_num(obj):
        list1 = []
        for i in obj:
            if not obj.index(i) % 2:
                list1.append(i)
        return list1
    res = check_num([1,2,3,4,5,6,7])
    print(res) #[1, 3, 5, 7]
    
    res = check_num((1,2,3,4,5,6,7))
    print(res) #[1, 3, 5, 7]
    

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

    def check_len(obj):
        # print(obj.values(),type(obj.values()))
        for i in obj:
            if len(obj[i]) > 2:
               obj[i] = obj[i][0:2]
        return obj
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    res = check_len(dic)
    print(res) #{'k1': 'v1', 'k2': [11, 22]}
    
    

    选做作业:见https://www.cnblogs.com/xy-han/p/12513083.html

  • 相关阅读:
    玩具数据库
    数据库中可能会出现的表
    SqlDbHelper
    重写 覆盖 虚方法
    页面标签的初始化
    如何将UTF8转换为UTF8n
    小软件项目开发的管理(转)
    SCRUM软件开发过程(转)
    在.Net如何制作自定义的快捷方式
    What Is a Leader
  • 原文地址:https://www.cnblogs.com/xy-han/p/12517617.html
Copyright © 2011-2022 走看看