• Python基础第五天


    一、内容

    二、练习

    练习1

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

    图示:

     代码:

    import os
    def revise(f,r,x):
        with open(f,'r',encoding='utf-8') as read_f,
            open('.li.swp','w',encoding='utf-8') as write_f:
            for line in read_f:
                if r in line:
                    line = line.replace(r,x)
                write_f.write(line)
        os.remove(f)
        os.rename('.li.swp',f)
    revise('a.txt','knight','dark')
    

    输出结果:

     a.txt原文件内容:

     

    运行该程序后,a.txt文件的内容:

    练习2

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

    图示:

    代码:

    user_input = input('Please enter:')
    def count(w):
        a = 0
        b = 0
        c = 0
        d = 0
        for i in w:
            if i.isdigit():
                a += 1
            elif i.isalpha():
                b += 1
            elif i.isspace():
                c += 1
            else:
                d += 1
        print('The number entered is %s,
    The letter entered is %s,
    The number of spaces entered is %s
    Other input is %s'%(a,b,c,d))
    count(user_input)
    

    输出结果:

    例:

    练习3

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

    图示:

    代码:

    def func_len(w):
        if isinstance(w,str) or isinstance(w,tuple) or isinstance(w,list):
        # isinstance是Python中的一个内建函数。是用来判断一个对象的变量类型。
            if len(w)>5:
                print('length>5')
            else:
                print('length<5')
        else:
            print('not str,not list,not tuple.')
    func_len('knight')
    func_len([1,2,3,4,5,6,7])
    func_len((1,2,3))
    
    # 当用户输入的不是字符串、元组、列表时
    func_len({'a':1,'b':2})
    

    输出结果:

    length>5
    length>5
    length<5
    not str,not list,not tuple.
    View Code

    练习4

    题目:写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。

    图示:

    代码:

    def foo(func):
        if isinstance(func,str) or isinstance(func,list) or isinstance(func,tuple):
            for i,j in enumerate(func,0):
                if not str(j).strip():
                    print('The No.%s element is empty'%i)
    
        else:
            print('not str,not list,not tuple')
    foo(['','2','knight','','lisa'])
    foo(('tangbao','zhuozi','','',1,2,3))
    foo({'x':1,'y':2})
    

    输出结果:

    The No.0 element is empty
    The No.3 element is empty
    The No.2 element is empty
    The No.3 element is empty
    not str,not list,not tuple
    View Code

    练习5

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

    图示:

    代码:

    def foo(func):
        if isinstance(func,list):
            if len(func) > 2:
                return func[0:2]
            else:
                return func
        return 'not a list'
    print(foo({'x':1,'y':2}))
    print(foo(['knight','lisa','zhuozi','tangbao']))
    print(foo(['haha']))
    

    输出结果:

    not a list
    ['knight', 'lisa']
    ['haha']
    View Code

    练习6

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

    图示:

    代码:

    def foo(func):
        if isinstance(func,list) or isinstance(func,tuple):
            l = []
            for i in func:
                if func.index(i) % 2 != 0:
                    l.append(i)
            return l
    
        return 'not list or not tuple.'
    
    print(foo([0,1,2,3,4,5,6,7,8]))
    print(foo({'x':1,'y':2}))
    print(foo('knight'))
    

    输出结果:

    [1, 3, 5, 7]
    not list or not tuple.
    not list or not tuple.
    View Code

    练习7

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

    图示:

    代码:

    def foo(dic):
        if isinstance(dic,dict):
            for i in dic:
                if len(dic[i]) > 2:
                    dic[i] = dic[i][:2]
            return dic
        return 'not dic'
    print(foo({"k1": "value1", "k2": [11,22,33,44],"k3":"value3"}))
    print(foo(['knight','lisa',1,2,3,4]))
    

    输出结果:

    {'k1': 'va', 'k2': [11, 22], 'k3': 'va'}
    not dic
    View Code

    三、英语

    1、instance

     ['ɪnstəns]    n.实例

    2、return

    [rɪ'tɝn]    vt.返回

    3、encode

    [ɪn'kod]    vt.编码

    4、decode

    [‚diː'kəʊd]    vt.解码

    5、read

     [rid; rɛd]    vi.读

    6、write

    [raɪt]    vi.写

  • 相关阅读:
    centos7 安装 nginx
    centos 关闭防火墙
    springcloud + nacos + mybatis ,增加seata分布式事务
    docker 运行 seata-server 配置nacos
    分布式事务4种方式,通俗易解篇
    主键字段报错doesn't have a default value (mybatis)
    模拟部署一个前后端分离的项目
    nginx配置接口转发路径
    前端部署后出现白板异常
    nodeJs的升降级(win10下)
  • 原文地址:https://www.cnblogs.com/fyknight/p/8048010.html
Copyright © 2020-2023  润新知