• 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'
  • 相关阅读:
    Html5 冒泡排序演示
    Html5 Json应用
    Html5 和 CSS的简单应用
    Html5 布局方式
    Html5 绘制五星红旗
    Html5 绘制旋转的太极图
    Html5绘制时钟
    Html5 实现灯笼绘制
    "电量信息"组件:<battery> —— 快应用组件库H-UI
    "系统音量"组件:<volume> —— 快应用组件库H-UI
  • 原文地址:https://www.cnblogs.com/zxw-xxcsl/p/11577576.html
Copyright © 2020-2023  润新知