• 笔记


    1.python进制表示 0b**:二进制 例: 0b10 ------- 2
      0o**:八进制 0o10 --------- 8
      0x:16禁止 0x10 --------- 16
      其他进制转换为二进制 bin()方法
      其他进制转换为八进制 oct()方法
      其他进制转换为十六进制 hex()方法
      其他进制转换为十进制 int()方法
     
    2.     3/2   ---- 1.5             3//2 ---------  1
       2**3代表2的三次方
     
    3.字符串前加r,字符串变为原始字符串 ,输出则原样输出
      例:print(r"let go") ---------let go
     
    4."hello world"[0:5]截取字符串为左闭右开--------‘hello’
      "hello world"[6:]截取字符串到最后(第二位不能为-1,否则没有最后一位)-------‘world’
     
    5.“组”
      列表(list):[0,1,2,3,4,5] (可以加入任意类型,无序)
        列表增加元素:  append()方法
      元祖(tuple):(0,1,2,3,4,5) 
        有顺序
        元组不可修改元素
        #若元组中包含列表,可以修改列表中的元素  例: a=(1,2,[3,4,5])     a[2][1] = 9
        序列解包:  a,b = 1,2  --------- a=1 b=2
                a,b = (1,2)  --------- a=1 b=2
         集合(set):{1,2,3}
        集合操作:{}-{} :求集合差集
             {}&{} :求集合交集
             {} | {} :求集合的合集
      字典(dict):{key1:value1,key2:value2,key3:value3}
        #字典不能有相同的key,如果有,虽然不报错,但前面的被删除,剩下最后的
        列表不能作为key,元组可以作为key
      {} :空的大括号为字典类型,不是集合类型
     
     
    6.运算符   
      当 and 两边都为 True值  返回 右边的值  例:  1 and 2  -------  2         ‘a’ and 'b' ---------- 'b'
       当 or 两边都为 True值  返回左边的值    例:   1 or  2 --------- 1
      (当两边都为 true时,计算机在运算时  and需要比较左右两个值 才能给出结果  ; or运算符 在比较左边为true是可以得出结果,所以直接返回结果)
      1 or 2 and 3 ----------- 1     #同级运算符 从左到右运算,但and优先级大于or
      in 运算符 在判断字典时   匹配的是key  例;  ‘a’ in {‘a’:1} ---------  True
      ==比较的是两个变量的值, is运算符 比较的是两个变量的地址  例: 1==1.0 ------- True     1 is 1.0 ----------- False
      {1,2,3,} == {2,1,3} ---------- true  #列表无序
      (1,2,3) == (2,1,3) ----------  False #元组有序
    运算符优先级(不包括同级)
     
     
    python 中*args和**kw  (名字任意)
      *args是非关键字参数,用于元组,**kw(**kwargs)是关键字参数,用于字典
      当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。
      
    # *args
    def
    fun1(farg,*args): print("farg: ",farg) for value in args: print("args value:",value) fun1(1,"two",3) ---------------------------------------------------------------- farg: 1 args value: two args value: 3
    # **kwargs
    def fun2(farg,**kwargs):
        print("farg: ",farg)
        for key in  kwargs:
            print("kwargs key:%s ,value:%s" %(key,kwargs[key]))
    fun2(1,myarg2="two",myarg3 = 3)
    --------------------------------------------------------------------
    farg:  1
    kwargs key:myarg2 ,value:two
    kwargs key:myarg3 ,value:3

    也可以在传参时代替

    def fun3(arg1, arg2, arg3):
        print("arg1:", arg1)
        print("arg2:", arg2)
        print("arg3:", arg3)
    args = ["two", 3]  # list
    kwargs = {"arg3": 3, "arg2": "two"} # dict
    fun3(1, *args)
    fun3(1, **kwargs)
    --------------------------------------------------------------------
    arg1: 1
    arg2: two
    arg3: 3
    arg1: 1
    arg2: two
    arg3: 3

    global声明此变量为全局变量 

    nonlocal声明此变量不是局部变量

    #问题描述:给出每次走的步数  输出总步数
    #非闭包实现
    origin = 0
    def factory(step):
        global origin
        step_normal = origin + step
        origin = step_normal
        return  step_normal
    print(factory(2))
    print(factory(5))
    print(factory(8))
    -------------------------------------------------------------------
    2
    7
    15

    函数式编程

      闭包(函数+环境变量):

    #问题描述:给出每次走的步数  输出总步数
    #闭包实现
    origion = 0
    def factory(pos):
        def go(step):
            nonlocal pos #nonlocal声明此变量不是局部变量
            step_normal = pos + step
            pos = step_normal
            return step_normal
        return go
    f = factory(origion)
    print(f(2))
    print(f(5))
    print(f(8))
    print(f.__closure__[0].cell_contents)#f.__closure__闭包的环境变量
    --------------------------------------------------------------------------
    2
    7
    15
    15

    匿名函数

    #普通函数
    def add(x,y):
            return x+y
    print(add(1,2))
    #匿名函数
    f = lambda x,y:x+y # :前面为参数,:后面为代码块
    print(f(1,2))
    -------------------------------------------------------------------
    3
    3

    三目运算符

    #条件为真时返回的结果 if 条件判断 else 条件为假时返回的结果
    x = 2
    y = 1
    r = x if x>y else y
    print(r)
    -----------------------------------------------------------------------
    2

    map函数(映射)

    #map
    list_x = [1,2,3,4,5,6]
    def square(x):
        return x*x
    r = map(square,list_x)
    print(type(r))
    print(list(r))
    -------------------------------------------
    <class 'map'>
    [1, 4, 9, 16, 25, 36]

    map函数与匿名函数结合

    list_x = [1,2,3,4,5,6,7,8]
    list_y = [1,2,3,4,5,6]
    r = map(lambda x,y:x*x+y,list_x,list_y) #参数少的决定
    print(list(r))
    ----------------------------------------------------------------
    [2, 6, 12, 20, 30, 42]

    reduce函数 (连续计算)

    from functools import reduce
    list_x = [1,2,3,4,5,6,7,8]
    r = reduce(lambda x,y:x+y,list_x)#(((1+2)+3)+4)+..........
    print(r)
    ----------------------------------------------------------
    36

    filter函数(过滤)

    #filter
    list_x = [1,0,1,0,1,0,1,0]
    r = filter(lambda x:True if x==1 else False,list_x)
    print(list(r))
    -------------------------------------------------------------------
    [1, 1, 1, 1]

    装饰器

    #简单装饰器
    import time
    def decorator(func):
        def wrapper():
            print(time.time())#输出一个时间戳
            func()
        return wrapper
    
    @decorator#添加装饰器,(方法名)
    def f1():
        print("This is a function")
    f1()
    ---------------------------------------------------------------
    1522898882.6890862
    This is a function

    因为装饰器需要应用于多种方法,而每个方法的需要的参数不一定一致,所以加以改进

    #装饰器
    import time
    def decorator(func):
        def wrapper(*args,**kwargs):
            print(time.time())#输出一个时间戳
            func(*args,**kwargs)
        return wrapper
    @decorator#添加装饰器,(方法名)
    def f1(func_name):
        print('This is a function named: '+ func_name)
    @decorator#添加装饰器,(方法名)
    def f2(func_name1,func_name2, **kwargs):
        print('This is a function named: '+ func_name1)
        print('This is a function named: ' + func_name2)
        print(kwargs)
    f1("function")
    f2("function1","function2",a=1,b=2,c="1,2,3")
    ------------------------------------------------------------------------
    1522899760.5345087
    This is a function named: function
    1522899760.5345087
    This is a function named: function1
    This is a function named: function2
    {'a': 1, 'b': 2, 'c': '1,2,3'}

      

  • 相关阅读:
    appcan封装好的ajax,解决onDATA覆盖问题
    待研究
    mysql主从实验
    jQuery动态加载JS以减少服务器压力
    HTTP协议详解
    企业站收藏
    Linux查看程序端口占用情况
    大流量网站优化
    营销类网站
    Nginx (简体中文)
  • 原文地址:https://www.cnblogs.com/jokerq/p/8678108.html
Copyright © 2020-2023  润新知