美文网首页Python基础
[python基础]-05 字符串和编码

[python基础]-05 字符串和编码

作者: 一点想法 | 来源:发表于2019-07-10 18:53 被阅读0次

    1.字符串编码历史及发展

    1.1 计算机运作原理

    计算机只能处理二进制数据:即0或者1,如果要处理的是文本,计算机会先把文本转换为计算机能识别的数字再进行处理

    1.2 计算机中字节和比特关系及换算

    计算机最早的设计是8bit(比特)作为一个byte(字节),所以一个字节最大的整数为255,如果要表示更大的整数,就必须用更多的字节表示

    一个字节最大的数值用二进制表示为:11111111
    换算成十进制:1(2^7)+1(26)+1*(25)+1(2^4)+1(23)+1*(22)+1(2^1)+1(2^0)=255

    1.3 ASCII编码

    由于计算机是美国人发明的,所以最早只有127个字符被编码到计算机即:大小写字母、数字和一些符号,最早这套编码称为:ASCII编码。

    1.4 GB2312编码

    由于处理中文一个字节显然不够至少需要两个字节,并且不能和ASCII编码重冲突,所以中国就制定了GB2312把中文编进去。

    1.5 多种编码出现导致的乱码问题

    因为全世界存在很多种语言,日本将日文编码到shift_JIS里,韩国将韩文编码到Euc_kr里,每个国家都制定了自己的编码标准,那么如果一个多国家语言的文本,显示出来就会出现乱码

    1.6 统一标准的Unicode编码应运而生

    Unicode编码将所有语言都整合到一套标准里,这样就解决了乱码问题

    但是由于Unicode编码常用的是两个字节表示一个字符,那么如果是纯英文文本,使用Unicode编码会比ASCII编码多一倍的存储空间

    1.7 可变长的编码UTF-8

    UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节
    1.常用的英文字母被编码成1个字节
    2.汉字通常是3个字节
    3.只有生僻字符才会被编码成4-6个字节
    使用UTF-8编码,对英文字符的传输相对Unicode就节省了很多空间

    2.Python字符串

    在Python2中常常使开发者头痛的问题就是字符串的编码问题,升级后的Python3解决了这个问题,Python3中字符串使用Unicode编码,即支持了多语言不出现乱码的问题。

    3.格式化输出

    3.1 第一种格式化方式 %

    第一种格式化方式C语言一致,用%表示

    >>>'hello %s,u age is %d' %('world',70)
    'hello world,u age is 70'
    %s %d %f %x表示占位符,有几个占位符,后面就要跟上几个变量或值,且顺序要对应
    %s  替换内容:字符串
    %d  替换内容:整数
    %f  替换内容:浮点数
    %x  替换内容:十六进制整数
    
    3.2 第二种格式化方式 format()

    使用format方法格式化字符串,传入的参数依次替换字符串内的占位符

    >>>'hello,my name is {0},my age is {1},my height is {2}'.format('Tom',10,'100cm')
    'hello,my name is Tom,my age is 10,my height is 100cm'
    

    相关文章

      网友评论

        本文标题:[python基础]-05 字符串和编码

        本文链接:https://www.haomeiwen.com/subject/owihkctx.html