zoukankan      html  css  js  c++  java
  • 第二周末 复习 薄弱的知识点:

    1、for 循环一行一行的读取文件,修改文件,以及或者跳过直接读取第二行(注意 “w”出现的地方会被更改)

    with open("你好.bak",encoding="utf-8")as f, open("你好","w",encoding="utf-8")as f2:
    count=0
    for line in f:
        if count>0:   new_content
    =line.replace("非常","")   f2.write(new_content)
        else:count=1
    import os os.remove("你好.bak") os.rename("你好","你好.bak")

    2、函数  代码的封装和调用

    # 写函数,检查传入字典的每一个value的长度,如果大于2,
    # 那么仅保留前两个长度的内容,并将新内容返回给调用者。
    #PS:字典中的value只能是字符串或列表
    def func(dic):
        for k in dic:
            dic[k]=dic[k][:2]
        return dic
    ret=func({12:"asfdsf"})
    print(ret)
    #{12: 'as'}

    3、三元运算符(返回一个较大的数字)

    def func(a,b):
        c=a if a>b else b
        return c
    ret=func(3,4)
    print(ret)
    #4

    4、位置参数,动态参数,默认参数,关键字参数

    def func(a,*args,key="key",**kwargs):
        print(a)
        print(args)
        print(key)
        print(kwargs)
    ret=func(1,2,3,"afsa",ds="123",asd="1234")

    5、动态参数的求和

    def my_sum(*args):
        sum_1=0
        for i in args:
            sum_1+=i
        return sum_1
    ret=my_sum(1,2,34,57)
    print(ret)

    6、打散列表 (将列表,转换为元祖)

    def my_sum(*args):
        print(args)
    l=[1,34,45,674]
    ret=my_sum(*l)
    # (1, 34, 45, 674)

    7、检测是否是闭包__closure__

    def fl():
        a=1
        def f2():
            def f3():
                print(a)
            f3()
            print("f3:",f3.__closure__)
        f2()
        print("f2:",f2.__closure__)
    fl()
    
    # 1
    # f3: (<cell at 0x00000000027A85E8: int object at 0x00000000655B60E0>,)
    # f2: (<cell at 0x00000000027A85E8: int object at 0x00000000655B60E0>,)

    8、在爬虫中应用闭包

    from urllib.request import urlopen
    def get_url(url):
        def readl():
            ret=urlopen(url).read()
            print(ret)
        return readl
    read_func=get_url("http://www.cnblogs.com/number1994/p/7941399.html")
    read_func()

    9、简单装饰器(语法糖的应用)

    import time
    def timmer(qqxing):
        def inner():
            print("调用func之前")
            qqxing()
            print("调用func之后")
        return inner
    @timmer #
    func=timmer(func)
    def func():
    print("大家好")
    func()

    10、装饰器的固定结构

    # 装饰器的固定结构
    def wrapper(func):               #timmer 是装饰器的名字,传入的参数就是被装饰的函数
        def inner(*args,**kwargs):      #在装饰器中需要定义一个内部函数
            """被装饰函数之前添加的代码"""
            ret=func(*args,**kwargs)    #被装饰器的函数,并且要执行
            # """被装饰函数之后添加的代码"""
            return ret
        return inner                    #将内部函数的名字返回

    11、log的使用

    def log(func):
        def inner(*args,**kwargs):
            print("你要调用%s函数了"%func.__name__)
            ret=func(*args,**kwargs)
            return ret
        return inner
    @log
    def f1():
        print("f1")
    @log
    def f2():
        print("f2")
    f1()
    f2()

    12、迭代器和生成器

  • 相关阅读:
    初始化项目结构
    Django基础2
    Django基础
    Linux(9~)
    Linux(8~)
    redis案例
    Jedis连接池
    Jedis入门
    redis持久化
    redis命令操作
  • 原文地址:https://www.cnblogs.com/number1994/p/7966983.html
Copyright © 2011-2022 走看看