zoukankan      html  css  js  c++  java
  • python全栈闯关--6-小知识点总结

    1、python2和python3区别常用整理

    # python2
    print 'abc'
    # 返回一个列表
    range()
    # 返回一个生成器值,不是list。每次只生成一个值,避免暂用很大的内存
    xrange() # 生成器
    # 输入
    raw_input(...)

    # python3
    print('abc')
    # 返回一个迭代值,需要生成列表就需要使用list(range(...))
    range()
    input(...)


    2、复制 == 比较值是否相等 is 比较,比较的是内存地址 id(内容)

    >>> li1 = [1,2,3]
    >>> li2 = li1
    >>> pring(id(li1),id(li2))
    >>> print(id(li1),id(li2))
    2472533256584 2472533256584
    
    # 数字和字符串存在小数池,小数池范围内,使用的是同一个内存地址
    # 数字  -5~256
    >>> i1 = 6
    >>> i2 = 6
    >>> print(id(i1),id(i2))
    140717920019440 140717920019440
    >>> i1 = 300
    >>> i2 = 300
    >>> print(id(i1),id(i2))
    2472536947344 2472536947248
    >>> i1 = 256
    >>> i2 = 256
    >>> print(id(i1),id(i2))
    140717920027440 140717920027440
    >>> i2 = 257
    >>> i1 = 257
    >>> print(id(i1),id(i2))
    2472536947344 2472536947248
    >>> i1 = -5
    >>> i2 = -5
    >>> print(id(i1),id(i2))
    140717920019088 140717920019088
    >>> i2 = -6
    >>> i1 = -6
    >>> print(id(i1),id(i2))
    2472536947344 2472536947248
    # 字符串: 1、不能有特殊字符
    #         2、s*20 还是同一个地址,s*21以后都是两个地址(有待考证,试验时,* 1以上,都变化了。估计是版本不同导致
    >>> s1 = '121212asdasdasdadasdasdasdadadqrjladksfjaiodfu'
    >>> s2 = '121212asdasdasdadasdasdasdadadqrjladksfjaiodfu'
    >>> print(id(s1),id(s2))
    2472537146064 2472537146064
    >>> s1 = '121212asdasdasdadasdasdasdadadqrjladksfjaiodfu@'
    >>> s2 = '121212asdasdasdadasdasdasdadadqrjladksfjaiodfu@'
    >>> print(id(s1),id(s2))
    2472537146160 2472537146064
    
    # list、dict、tuple、set
    # list
    >>> l1 = [1,]
    >>> l2 = [1,]
    >>> print(l1 is l2)
    False
    >>>
    >>> l2 = l1
    >>> print(l1 is l2)
    True

    3、字符集编码

    ascii
    A : 00000010 8位 一个字节

    unicode A : 00000000 00000001 00000010 00000100 32位 四个字节
    中:00000000 00000001 00000010 00000110 32位 四个字节


    utf-8 A : 00100000 8位 一个字节
    中 : 00000001 00000010 00000110 24位 三个字节


    gbk A : 00000110 8位 一个字节
    中 : 00000010 00000110 16位 两个字节
    1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
    2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)



    py3:
    str 在内存中是用unicode编码。
    bytes类型
    对于英文:
    str :表现形式:s = 'beer'
    编码方式: unicode
    bytes :表现形式:s = b'beer'
    编码方式: utf-8 gbk。。。。

    对于中文:
    str :表现形式:s = '熊大'
    编码方式: unicode
    bytes :表现形式:s = b'xe9x9bx84xe5xa4xa7'
    编码方式: utf-8 gbk。。。。

    >>> s = 'beer'
    >>> s1 = b'beer'
    >>> print(s,type(s))
    beer <class 'str'>
    >>> print(s1,type(s1))
    b'beer' <class 'bytes'>
    >>> 
    >>> 
    >>> s = '雄大'
    >>> print(s,type(s)
          )
    雄大 <class 'str'>
    >>> s1 = b'雄大'
    SyntaxError: bytes can only contain ASCII literal characters.
    >>> 
    >>> 
    >>> s1 = s.encode('utf-8')
    >>> print(s1)
    b'xe9x9bx84xe5xa4xa7'
    >>> s1 = s.encode('gbk')
    >>> print(s1)
    b'xd0xdbxb4xf3'
  • 相关阅读:
    250 浅拷贝Object.assign(target, ...sources),深拷贝
    249 递归:概念,利用递归求1~n的阶乘,利用递归求斐波那契数列,利用递归遍历数据
    248 闭包:概念,作用,案例,思考题案例,chrome 中调试闭包
    247 高阶函数 之 函数可以作为参数传递
    246 JavaScript严格模式
    245 改变函数内部 this 指向:call,apply,bind,call、apply、bind 三者的异同
    244 函数内部的this指向:6种
    243 函数:函数的3种定义方式,函数的6种调用方式
    242 Object.defineProperty
    241 获取对象的属性名:Object.keys(对象)
  • 原文地址:https://www.cnblogs.com/zxw-xxcsl/p/11577576.html
Copyright © 2011-2022 走看看