python2和python3区别

print

python2中,print 是语句 :用法 ---->print '***'

python3中,print 是函数:用法----->print('***')

不过python2.6和python2.7是允许使用部分python3的语法和函数的。比如print函数就可以

xange()  range()

python2 :xrange()函数用法与range完全相同,只是返回的是一个"xrange object"对象(生成器),而非数组list。

python3:range生成的是数组,等差数列。python3中已经没有了xrange。

区别如下:

1.range和xrange都是在循环中使用,输出结果一样。

2.range返回的是一个list对象,而xrange返回的是一个生成器对象(xrange object)。

3.xrange则不会直接生成一个list,而是每次调用返回其中的一个值,内存空间使用极少,因而性能非常好。

input() raw_input()

python2:

  input():只接受数字的输入,返回数字类型(int,float),对待数字输入时具有自己的特性。

  raw_input():将所有输入看作是字符串对待,返回的数据类型为字符串。

python3:

  input():整合了上述两种,接收的输入全部返回为字符串类型。

赋值(is / id )

li1 = [1,2,3]
li2 = li1#li1 的值赋给li2,即li2也指向li1指向的内存中的[1,2,3]
print(li1 is li2)# is
print(id(li1))# id
print(id(li2))

拓展:小数据池的概念:-5~256,仅限数字和字符串

i1 = 6
i2 = 6
print(i1 is i2)
print(id(i1),id(i2))
i3 = 300#在终端命令行里面进行操作,pycharm值还是一样
i4 = 300
print(i3 is i4)
print(id(i3),id(i4))

仅限数字和字符串

数字范围:-5~256,

字符串:1,不能含有特殊字符

    2,s*20是同一地址,21之后不一致,s为单字符

编码 encode

各种编码之间的二进制不能互相识别,会出现乱码。

文件存储,传输,不能是unicode,(存储空间太大,英文两个字节,中文四个字节)

python2

字符串在python内部的表示是unicode编码,因此,在做编码转换时,通常需要unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成(解码)unicode编码。str.decode('gbk'),表示将gbk编码的字符串str解码成unicode编码。

encode的作用是将unicode编码的字符串转换成(编码)其他编码。str.encode('utf-8'),表示将unicode编码的字符串str编码成utf-8编码。

python3

文本总是用unicode进行编码,以str类型表示;而二进制数据以bytes类型表示。

Python3 中没有 decode 方法,就无法将其他编码的字符串解码,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,

所以就要用bytes的decode来解码,然后再编码成其他编码

这个 bytes 对象可以由 str.encode() 来编码返回

即bytes类型可由str.encode()返回生成,再由bytes的decode方法解码成其他编码方式的str类型。

s = 'asdf'
s1 = s.encode('utf-8')
print(s1,type(s1))
s2 = '汉字'
s3 = s2.encode()#默认为 utf-8,看结果,两个汉字,共六个字节。
print(s3,type(s3))

s4 = s3.decode()#解码,bytes类型才能decode
print(s4)

个人参考:https://www.cnblogs.com/abclife/p/7445222.html

decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 'utf-8'。

pass

python学习日记(python2/3区别补充,is / id/ encode str,bytes)的更多相关文章

  1. python学习日记(2/3区别,环境,变量,数据类型以及简单习题)

    Python2 与 python3 的区别: python2源码不标准,混乱,重复代码太多 python3统一标准,去除重复代码 python2的默认编码方式是ASCII码,不能识别中文.解决方法:在 ...

  2. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

  3. Python学习日记 --day2

    Python学习日记 --day2 1.格式化输出:% s d  (%为占位符 s为字符串类型 d为数字类型) name = input('请输入姓名') age = int(input('请输入年龄 ...

  4. python学习日记(基础数据类型及其方法01)

    数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print ...

  5. Python 学习日记(第二周)

    从这周开始我就正式学习Python 语言了.以后每周都会有一篇有关于学习Python的见闻与大家分享! Python的安装 学习的第一步首先要有一个运行的环境.所以接下来介绍一下安装的步骤. 通过Py ...

  6. Python学习日记(一):拜见小主——Python

    近日学习Python,特将学习过程及一点心得记录于此. 由于之前做过一个Java爬虫的项目,虽然很长时间没有碰过爬虫,但是小郭同学有一颗不死的爬虫心,哈哈.最近在互联网上找一些电影的时候,有很多电影只 ...

  7. Python学习日记(一)——初识Python

    Python的优势 互联网公司广泛使用python来做的事一般有:自动化运维.自动化测试.大数据分析.爬虫.Web等. Python与其他语言 C和Python.Java.C#: C  语言:代码编译 ...

  8. python学习日记(文件操作)

    文件操作概述 计算机系统分为:操作系统,计算机硬件,应用程序. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序 ...

  9. Python学习日记(十)—— 杂货铺(全局变量补充、Python参数传递、字符串格式化、迭代器、生成器)

    全局变量补充 python自己添加了些全局变量 print(vars()) """结果: {'__name__': '__main__', '__doc__': None ...

随机推荐

  1. p76泛函 有限维空间真子空间不可能在全空间稠密

    连续函数  然后多项式函数是稠密的 多项式子空间是无穷维的 多项式空间就是在全体连续函数的线性空间中稠密 有限维子空间是闭的 多项式空间也不是有限维 2的地方说 有限维真子空间必不稠密 那是对的啊 有 ...

  2. 【kindle笔记】读书记录-总

    注:谨以此贴记录各种读书心得的目录.包括纸质书和电子书等等. 我的啃豆 说起来,买啃豆的初心是<鸟哥私房菜> 来自亚马逊中国官网,于公元2017年,在双十一与双十二中间,一千大洋购得 有了 ...

  3. 【学习总结】Master课程 之 虚拟化与云计算

    Section 1- Cloud Computing Introduction-云计算介绍 1-What can Cloud Computing do? - 云计算可以做什么? 服务模式:美国国家标准 ...

  4. [转帖]前端-chromeF12 谷歌开发者工具详解 Console篇

    前端-chromeF12 谷歌开发者工具详解 Console篇 https://blog.csdn.net/qq_39892932/article/details/82655866 趁着搞 cloud ...

  5. Laravel 的十八个最佳实践

    本文翻译改编自 Laravel 的十八个最佳实践 这篇文章并不是什么由 Laravel 改编的 SOLID 原则.模式等. 只是为了让你注意你在现实生活的 Laravel 项目中最常忽略的内容.   ...

  6. 用Canvas实现一些简单的图片滤镜

    1.灰度滤镜 对于灰度滤镜的实现一般有三种算法 1) 最大值法:即新的颜色值R=G=B=Max(R,G,B),通过这种方法处理后的图片看起来亮度值偏高. 2) 平均值法:即新的颜色值R=G=B=(R+ ...

  7. Java多线程5:Synchronized锁机制

    一.前言 在多线程中,有时会出现多个线程对同一个对象的变量进行并发访问的情形,如果不做正确的同步处理,那么产生的后果就是“脏读”,也就是获取到的数据其实是被修改过的. 二.引入Synchronized ...

  8. X5中CSS设置

    颜色渐变 position:absolute;left:0;top:40%; 效果图 点击导航按钮变化颜色 1.设置按钮class为 btn-link(超链接) 2.为每一个导航按钮增加属性id 3. ...

  9. build/temp.linux-x86_64-2.7/_openssl.c:493:30: fatal error: openssl/opensslv.h: No such file or directory

    解决:apt-get install libssl-dev apt install python-dev(这个可能和那个错误关系不大)

  10. TP5系统变量输出

    1.超全局变量 模板中: {$Think.sever.server_name}              //全部小写,输出blog.cn 控制器: $_SERVER['SERVER_NAME']  ...