一、Python2与Python3的区别

1、从宏观上考虑,Python2重复代码太多,错误率高,不够规范。Python崇尚的是语言简洁、优美、清晰。Python3更加规范,重复代码少;

2、Python2默认的编码是ASCII码,无法正确识别中文,而Python3默认的代码是utf-8,能够正确识别中文;

3、Python2中print打印时后面可以不用加(),但是Python3中print打印时必须加上(),否则会报错;

4、Python2中有range和xrange(生成器),但是Python3中只有range ;

5、Python3中的input,在Python2中是raw_input。

二、“=”、“==”与“is”的区别

1、“=”  :赋值     把后面的值赋给前面

2、“==” :比较前后的值是否相等

3、“is” :比较的是前后的变量内存地址

4、id  : 显示的是内存地址

li1 = [,,]
li2 = li1
li3 = li2
print(id(li1),id(li2))

三、数字和字符串

小数据池:在一定范围内当多个变量被赋值的是一个相同的数值时,其占用的内存地址是一样的。

int里面有小数据概念,范围是-5-------  256

i1 =
i2 =
print(id(i1),id(i2))
i1 =
i2 =
print(id(i1),id(i2))

字符串也有小数据池概念,不过没有什么具体准确的标准,暂时只发现两个规律
1、不能含有特殊字符;

2、s*20 还是同一个地址,s*21以后都是两个地址

剩下的list、dict、tuple、set都没有小数据池概念。

四、编码

ASCII码:一个字符用8位来表示,共1个字节;

unicode码:有16位和32位的两种,现在大部分用的是32位来表示一个字符,共4个字节;

utf-8码:最少用8位来表示一个字符,英文时是8位来表示的,共1个字节,中文是用24位来表示的,共3个字节,欧洲其他国家文字是用16未来表示的,共2个字节。

gbk码:表示英文时是用8位来表示的,共1个字节,中文是用16位来表示的,共2个字节。

注意:

1、各个编码之间的二进制是不能互相识别的,会产生乱码;

2、文件的储存、传输不能是unicode(只能是utf-8、utf-16、gbk、gb2312,ascii等)

Python3中  str 在内存中是用unicode编码。
encode 编码,如何将str --> bytes, ()
s11 = s1.encode('utf-8')
s11 = s1.encode('gbk')
print(s11)
s2 = '中国'
s22 = s2.encode('utf-8')
s22 = s2.encode('gbk')
print(s22)

bytes类型

对于英文:

str  :表现形式:s = 'alex'                                                    编码方式: 010101010  unicode

bytes :表现形式:s = b'alex'                                                   编码方式: 000101010  utf-8 gbk。。。。

对于中文:

str  :表现形式:s = '中国'                                                    编码方式: 010101010  unicode

bytes :表现形式:s = b'x\e91\e91\e01\e21\e31\e32'              编码方式: 000101010  utf-8 gbk。。。。

Python之编码的更多相关文章

  1. python Unicode 编码解码

    1 #将Unicode转换成普通的Python字符串:"编码(encode)" 2 unicodestring = u"Hello world" 3 utf8s ...

  2. python的编码问题

    本文简单介绍了各种常用的字符编码的特点,并介绍了在python2.x中如何与编码问题作战 :) 请注意本文关于Python的内容仅适用于2.x,3.x中str和unicode有翻天覆地的变化,请查阅其 ...

  3. python 字符编码练习

    通过下面的练习,加深对python字符编码的认识 # \x00 - \xff 256个字符 >>> a = range(256)>>> b = bytes(a) # ...

  4. Python 字符编码 zz

    http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html 1. 字符编码简介 1.1. ASCII ASCII(American Stan ...

  5. python 之编码问题详解

    前在一个项目中遇到用post提交一个xml,xml中含有中文,对于单独的py文件,使用urllib2.urlopen完全ok,但在django中使用就一直报编码错误,然后在网上看到这篇文章不错,决定m ...

  6. 19.python的编码问题

    在正式说明之前,先给大家一个参考资料:戳这里 文章的内容参考了这篇资料,并加以总结,为了避免我总结的不够完善,或者说出现什么错误的地方,有疑问的地方大家可以看看上面那篇文章. 以下说明是针对于pyth ...

  7. Python字符编码详解

    1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有 ...

  8. python的编码

    python的编码 1.概述 讲述编码,那么就要涉及到几个方面,包括系统中如何来显示字符,文件中如何来保存字符. 1.1 系统环境 在系统中显示字符,那么就必须要考虑到系统中使用的编码格式. 在lin ...

  9. 【转】Python字符编码详解

    转自:http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html 1. 字符编码简介 1.1. ASCII ASCII(American S ...

  10. python与编码

    Python中的文字对象 Python 3.x中处理文字的对象有str, bytes, bytearray. bytes和bytearray可以使用除了用作格式化的方法(format, format_ ...

随机推荐

  1. Redis分布式锁的正确实现方式

    前言 分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁.本篇博客将介绍第二种方式,基于Redis实现分布式锁.虽然网上已经有各种介 ...

  2. 【Unity3D与23种设计模式】桥接模式(Bridge)

    GoF定义: "将抽象与实现分离,使二者可以独立的变化" 游戏中,经常有这么一种情况 基类角色类(ICharacter),下面有子类士兵类(ISoldier).敌军类(IEnemy ...

  3. windows下大文件SQL导入问题

    今天遇到了一个比较棘手的问题,SQL文件太大,导入数据库时太过于麻烦,超过1G以后nodpad.sublime等编辑器都打不开,这就有了一个比较尴尬的问题. 因为是本地测试所以环境是windows,最 ...

  4. serializeArray()获取的表单参数转化成json格式的对象

    目标:将serializeArray()这个方法获取的表单对象  转换成json格式 function serializeObject(){ //easyui提交表单 $('#form').form( ...

  5. JS中原始值和引用值的储存方式

    在ECMAscript中,变量可以存放两种类型的值,即原始值和引用值 原始值指的是代表原始数据类型的值,也叫基本数据类型,包括:Number.Stirng.Boolean.Null.Underfine ...

  6. JavaSE语法基础(3)---函数、数组

    JavaSE语法基础(3)---函数.数组 函数的概念:实现特定功能的一段代码,可反复使用. 函数的出现减少代码冗余,提高代码的复用性,可读性,可维护性,可以使每个功能模块独立起来,方便分工合作. 函 ...

  7. JVM学习七:JVM之类加载器之类的卸载

    类加载的过程和原理,以及双亲委派机制都已经讲解完成,那么我们今天讲解类加载的最后一节,那么就是类的卸载. 我们知道,当一个类被加载.连接和初始化之后,他的生命周期就开始了,当该类的class对象不再被 ...

  8. YCSB测试HBase远程完全分布式集群

    写在前面 本文只讲一个很简单的问题,YCSB对HBase集群的测试.虽然网上有很多介绍YCSB测试HBase的文章,但都是针对本地HBase伪分布式集群的.大家都知道,稍微正式一些的压测都会要求测试客 ...

  9. 【详细】总结JavaWeb开发中SSH框架开发问题(用心总结,不容错过)

    在做JavaWeb的SSH框架开发的时候,遇到过很多的细节问题,这里大概记录下 我使用的IDE是Eclipse(老版本)三大框架:Spring4.Struts2.Hibernate5 1.web.xm ...

  10. JAVA设计模式之【装饰者模式】

    JAVA设计模式之[装饰者模式] 装饰模式 对新房进行装修并没有改变房屋的本质,但它可以让房子变得更漂亮.更温馨.更实用. 在软件设计中,对已有对象(新房)的功能进行扩展(装修). 把通用功能封装在装 ...