• Python学习进阶之薄弱点总结


    
    '''
    1.实现用户传入一个普通字符串,
    返回字符串的md5加密结果的函数
    '''
    
    # import hashlib
    #
    # def M(str):
    #     m = hashlib.md5()
    #     m.update(str.encode('utf8'))
    #     return m.hexdigest()
    #
    # s = M('stoll')
    # print(s)
    
    #函数对象的四大功能
    
    #1. 引用(和变量一样)
    # x = "hello nick"
    # y = x
    # def func():
    #     print('from func')
    # f = func
    # print(func) #打印的是函数的内存地址
    
    #2. 当做参数传给一个函数 (和变量一样)
    # len(x)
    # def foo(m):
    #     m()
    # foo(func)
    
    #3. 当做函数的返回值
    # def foo(x):
    #     return x
    #
    # res = foo(func)
    # print(res)
    # res()
    
    #4. 可以当做容器类型的元素
    # l = [x]
    #
    # function_list = [func]
    # function_list[0]()
    
    
    '''
    return和yield关键字的区别
    相同点
    功能都是返回程序执行结果
    
    区别
    yield返回执行结果并不中断程序执行,
    return在返回执行结果的同时中断程序执行。
    '''
    
    
    '''
    模块搜索的顺序
    
    1. 先从内存中找
    2. 内置的模块
    3. 环境变量sys.path中找
    '''
    
    '''
    包中的__init__文件有以下作用:
        1.标识该文件是Package
        2.模糊导入中的*中的模块是由__all__来定义的,
        定义__all__用来模糊导入
    '''
    
    
    """
    1. 使用while循环实现for循环底层原理
    # 提示:使用下述代码可以捕捉异常
    
    try:
      # 逻辑代码
    except StopIterationError:
      break
    """
    # 1. 首先使用iter把lt变成迭代器对象;对于文件也要使用iter方法吧文件再一次iter下
    # 2. 然后使用next方法进行迭代取值
    # 3. 判断StopIteration异常,遇到异常终止
    
    # lt = [2,2,3,5]  # 对该列表进行循环取值
    # lt_iter = lt.__iter__() # 把列表(可迭代对象)变成迭代器对象
    # while 1: # 只要是true,就执行
    #     try:
    #         print(lt_iter.__next__())
    #     except StopIteration: # 遇到异常就抛出,为什么会抛异常,因为while会一直循环,但是迭代器对象只能遇到执行4个__next__,第五个没有了,就会遇到异常
    #         break
    
    
    lt=[1,2,3,4,5,5]
    lt_iter = lt.__iter__()
    while 2:
       try:
           print(lt_iter.__next__())
       except StopIteration:
           break
    
    """
    2. 阅读需求,编写代码:
        1. 规定使用filter()内置函数和匿名函数
        2. 将`names = ['Nick', 'Sean_sb', 'Tank_sb', 'Jason_sb']`中
        留下以sb结尾的名字
    """
    # names = ['Nick', 'Sean_sb', 'Tank_sb', 'Jason_sb']
    
    # 结果为:['Sean_sb', 'Tank_sb', 'Jason_sb']
    
    print(list(filter(lambda a: a.endswith('sb'), names)))
    
    # print(list(filter(lambda x: x.startswith('s'.upper()), names)))
    
    
    """
    3. 阅读需求,编写代码:
        1. 自定义生成器
        2. 该生成器拥有range()函数拥有的功能
    
      """
    
    def self_range(start, end, step):
        list = [start, end]
        print(start)
        while list[0] < list[1]:
            yield list[0]
            list[0] += step
    #
    for i in self_range(1, 10, 2):
        print(i)
    
    
    
    """
    # 结果为:
    
    for i in self_range(1, 10, 2):
      print(i)  # 1,3,5,7,9
    
    4. 阅读需求,编写代码:
        1. 自定义3*4的numpy数组,
        2. 把第1行和第2列的元素置为0
    
    import numpy as np
    
    # 结果为:
    
    '''
    array([[0.        , 0.        , 0.        , 0.        ],
           [0.22721118, 0.        , 0.87410034, 0.85833497],
           [0.40389177, 0.        , 0.42199234, 0.87709706]])
    '''
    
    l  = np.empty((3, 4))
    arr = l.copy()
    arr[:1, :] = 0
    arr[:, 1:2] = 0
    print(arr)
    
    
    5. 阅读需求,编写代码:
    
       1. 对于字符串`Life234234is    beautiful234because234of    persistence`
       2. 请使用re模块 **一行代码** 还原这句话为`Life is beautiful because of persistence`
    """
    
    import re
    
    s = 'Life234234is    beautiful234because234of    persistence'
    
    # 结果为:Life is beautiful because of persistence
    
    l = re.sub('234',' ', s)
    print(l)
    
    
    
    
    
    

    解压缩

  • 相关阅读:
    Android Butterknife(黄油刀) 使用方法总结【转】
    Andriod- 一些包
    Andriod- 学习网站
    Android热点 8.0 ,7.1 ,6.0一7.0 以及6.0以下热点创建到连接完全适配
    Android- 动态修改ToolBar的Menu菜单
    C#- Socket实现服务器与多个客户端通信
    html使用pdf.js途中遇到的坑和坑
    小程序内嵌H5页面和小程序内部页面互相传参和内嵌H5页面的调试
    记录一次Centos7宕机事件
    Spring Boot 2.x实战
  • 原文地址:https://www.cnblogs.com/michealjy/p/11402674.html
Copyright © 2020-2023  润新知