zoukankan      html  css  js  c++  java
  • 初识函数到正则表达式知识点总结

    %:求余数
    //:整除
    "is"是比较内存地址是否一样 "=="是比较值是否一样

    ###########################################################
    在python中遍历字典的时候不能对字典的key进行改变
    深浅拷贝的理解
    def func(m):
    for k, v in m.items():
    m[k + 2] = v + 2


    m = {1: 2, 3: 4} # m={1:2, 3:4}
    l = m # l={1:2, 3:4}
    l[9] = 10 # l={1:2, 3:4, 9:10}
    func(l) # l={1:2, 3:4, 9:10}
    m[7] = 8 # l={1:2, 3:4, 9:10, 7:8}
    ###########################################################

    global:在局部对全局变量进行修改
    nonlocal:在局部对离自己最近的上一个局部中的变量进行修改
    globals():返回全局作用域中的所有名字
    locals():返回本地作用域中的所有名字
    作用域:函数内部是局部作用域
    函数外部是全局作用域

    闭包函数:内部函数调用外部函数的变量,就是闭包函数
    装饰器:开放封闭原则,对功能扩展是开放的,对修改是封闭的
    本质上是一个闭包函数
    迭代器:有“__iter__”方法是可迭代对象,
    有“__iter__”和“__next__”方法是迭代器
    可迭代对象加上“__iter__”方法就会变成迭代器
    可迭代对象和迭代器都能直接for循环
    生成器和迭代器都是惰性运算,不主动运算,要一个值给一个值
    生成器:生成器函数yield,下面接收者就是一个生成器,他有“__iter__”和“__next__”方法,
    所以生成器的本质就是迭代器
    生成器进阶:send():就是给上一个yield处传一个值,
    且第一次必须使用__next__”方法,
    最后一次yield不能接受外部的值
    yield from:当生成器函数是一个列表的话,可以不用for循环然后yield
    可以直接yield from
    比如可以不用这种
    def generator():
    a = "abcde"
    for i in a:
    yield i
    g = generator()
    for i in g:
    print(i)
    而用这种:
    def generator():
    a = "abcde"
    yield from a

    g = generator()
    for i in g:
    print(i)
    生成器表达式,放在括号中:g = (i for i in range(1, 11)),
    列表推倒式,放在列表中:[i for i in range(1, 11) if i % 2 == 0]
    g就是生成器
    如果放在列表中,就不是生成器表达式,而是列表推倒式
    生成器表达式不占内存,可以用一个取一个,
    而列表推倒式一下子生成列表,占内存

    内置函数加小知识点:
    dir():查看一个对象拥有的方法
    help():查看一个对象拥有的方法以及用法
    callble():查看对象是变量是一个函数还是一个值
    id():一个变量所在的内存地址
    " ":字符串前面加上" "回到行首
    " ":字符串后面加上" "换行
    eveal():执行字符串类型的代码,有返回值
    exec():执行字符串类型的代码,没有返回值
    abs():绝对值
    divmod(x,y):x除以y,得出一个元组,第一个值是商,第二个值是余数
    pow(x,y):幂运算,x的y次方
    pow(x,y,z):幂运算,x的y次方除以z取余数
    round():精确小数取多少位
    sum():求和,只能接受可迭代的数据类型
    min():有一个key参数,例如可以指定key=abs
    reversed():反转,保留原列表,返回一个迭代器
    repr():会让一个变量原封不动的打印出来,例如字符串1打印出来就是"1"
    frozenset():不可变集合,不可变数据类型
    enumerate():枚举,接受一个可迭代对象,list之后得到列表包元组,
    元组第一个值是序号,第二个值是可迭代对象中的一个个值
    zip():拉链函数
    filter():过滤函数
    执行之后的结果,列表中的个数 <= 执行前的结果,
    filter只管筛选,不会改变原来的值
    map():执行之后的结果,列表中的个数=执行前的结果,
    值可能会发生改变, 在列表推倒式中使用map,列表推倒式后面没有if条件
    sorted():排序,会直接生成一个新列表,而不是生成一个迭代器,
    所以占用内存,应该慎用
    匿名函数:格式: lambda x: x + 1 冒号前面是函数参数,冒号后面是函数返回值
    一提到匿名函数,应该立即联想到内置函数,filter,map,max,min,sorted等
  • 相关阅读:
    转载:C#中的属性、和字段的区别
    在idea中创建一个maven web工程及解决工程创建过慢问题
    注解&动态代理
    Listener&Filter
    Ajax&jQuery
    JSP&EL&JSTL
    Cookie&Session
    HttpServletRequest&HttpServletResponse
    Http协议&Servlet
    XML
  • 原文地址:https://www.cnblogs.com/QimiSun/p/9936004.html
Copyright © 2011-2022 走看看