python学习笔记_day2_数据

py_day2_数据

读《python语言及其应用》做的笔记

目的: 了解unicode, utf-8的不同,编码,解码方法。

           正则表达式部分感觉介绍的过于简略了,所以没有记录,以后专门看正则表达式的时候再写。

 

1,文本字符串
    
    文本
    ASCII使用7位  128种取值。
    Unicode 使用若干个8bit的集合,称之为平面(plane)。
    
    python3中的字符串是Unicode字符串而不是字节数组。

    python中的unicodedata提供了下面两个方向的转换函数:
    1)lookup(),接受不区分大小写的标准名称,返回一个Unicode字符。
    2)name(),接受一个Unicode字符,返回大写形式的名称。
    用法:
    import unicodedata
    name = unicodedata.name(value)
    value = unicodedata.lookup(name)
    这些函数的问题来自于字体的限制。
    
    UTF-8
    1)将字符串编码为字节
    2)将字节解码为字符串
    是一种变长编码方式
    
    UTF-8是python,linux,以及html的标准文本编码方式。
    
    编码: 将字符串转换为一系列字节的过程。
    编码方式 'ascii', 'uft-8', 'latin-1', 'cp-1252', 'unicode-escape'
    encode('utf-8')
    
    解码: 将字节序列转换为Unicode字符串的过程。
    decode('unicode')

    格式化
    1) 使用%的旧式格式化
    %s, %d, %x, %o, %f, %e, %g, %%(文本值本身)
    2) 使用{}和format的新式格式化
    与旧格式化兼容
    '{} {} {}'.format(n, f, s)
    旧格式化中传入参数的顺序需要与%占位符出现的顺序完全一致,新格式化里,可以自己制定插入的顺序。
    '{2} {0} {1}'.format(f, s, n)
    0代表第一个参数f, 1代表第二个,2代表第三个。
    参数名可以是字典或者命名变量,格式串中的标识符可以引用这些名称。
    新格式化也支持其他各类设置(最小域宽、最大字符宽、排版,等等)。


    正则表达式
    与之相关的功能都位于标准库模块re中,因此首先要引用它。
    需要定义一个用于匹配的模式(pattern)字符串以及一个匹配的对象:源(source)字符串。
    result = re.match('You', 'Young Frankenstein')
    
    优先进行编译以加快匹配速度:
    youpattern = re.compile('You')
    result = youpattern.match('Young Frankenstein')
    
    其他方法:
    search(), 
    findall(), 
    split(), 
    sub()。
    
    ^和$叫作锚点:^将搜索域定位到字符串的开头,$则定位到结尾。
    这本书里没有看到我想看的部分,不作记载了。


2,二进制数据

    需要了解字节序,以及整数的符号位之类的概念。
    可能需要研究二进制文件格式、网络包内容,从而对其中的数据进行提取甚至修改。
    该节了解一些基本操作。
    
    字节和字节数组
    字节是不可变的,像字节数据组成的元组。
    字节数组是可变的,像字节数据组成的列表。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值