• Python自学笔记-字符串编码(来自廖雪峰的官网Python3)


    感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下。
    以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看。
     
    1.理解变量在计算机内存中的表示也非常重要。当我们写:
    a = 'ABC'
    时,Python解释器干了两件事情:
    1. 在内存中创建了一个'ABC'的字符串;
    2. 在内存中创建了一个名为a的变量,并把它指向'ABC'。
    2.常量
    所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量。
     
    3.在Python中,有两种除法,一种除法是/:
    >>> 10 / 3 3.3333333333333335
    /除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:
    >>> 9 / 3 3.0
    还有一种除法是//,称为地板除,两个整数的除法仍然是整数:
    >>> 10 // 3 3
    你没有看错,整数的地板除//永远是整数,即使除不尽。要做精确的除法,使用/就可以。
    因为//除法只取结果的整数部分,所以Python还提供一个余数运算,可以得到两个整数相除的余数:
    >>> 10 % 3 1
    无论整数做//除法还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。
    由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。
     
    Python对bytes类型的数据用带b前缀的单引号或双引号表示:
    x = b'ABC'
    要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。
    以Unicode表示的,例如:
    >>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'xe4xb8xadxe6x96x87' >>> '中文'.encode('ascii') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
     
    纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。
    在bytes中,无法显示为ASCII字符的字节,用x##显示。
    反过来,如果我们从网络或磁盘上读取了字节流,那么
    >>> b'ABC'.decode('ascii') 'ABC' >>> b'xe4xb8xadxe6x96x87'.decode('utf-8') '中文'
     
     
    %运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。
  • 相关阅读:
    如何弹出QQ临时对话框实现不添加好友在线交谈效果
    让sublime text3支持Vue语法高亮显示[转]
    spa(单页面应用)的优缺点[转]
    vue-devtoools 调试工具安装
    元素视差方向移动jQuery插件-类似github 404页面效果
    js删除数组元素、清空数组的简单方法
    sublime text3 setting-user
    vue环境搭建
    Starting httpd:Could not reliably determine the server's fully qualified domain name
    使用传输表空间迁移数据
  • 原文地址:https://www.cnblogs.com/william126/p/6991413.html
Copyright © 2020-2023  润新知