python2&python3
1、Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi')
Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比如 print 'hi'
2、Python2 range(1,10)返回列表,Python3中返回迭代器,节约内存
3、Python2 中使用ascii编码,Python3中使用utf-8编码
4、Python2 中unicode表示字符串序列,str表示字节序列
Python3 中str表示字符串序列,byte表示字节序列
5、Python2 中为正常显示中文,引入coding声明,Python3中不需要
6、Python2 中是raw_input()函数,Python3中是input()函数
7、Python2 导入同级目录下的模块无需 . Python3导入同级目录下的模块需要加上 .
python2 | python3 |
1. 编码方面 | |
ASCII编码 -- str类型 Unicode编码 -- Unicode类型 | Unicode编码 -- str类型 非Unicode编码 -- 字节类型: bytes & bytearrays |
python2创建的字符串根据操作系统而定, Linux下为 utf-8, 简体中文Windows下为 GBK, ipython2默认为 utf-8 | python3&ipython3创建的字符串为: Unicode编码 -- str类型 的字符串, 源码文件默认为utf-8 |
2. 语法方面 | |
除法运算 / , 整数运算时会把小数部分完全忽略掉, 浮点数运算时会保留一位小数. | 进行整数运算时, 结果仍为浮点数 |
xrange 返回一个生成器, 需生成较大的数字序列时, xrange性能更优. | range 生成一个list对象 |
zip()函数返回列表 | zip()函数返回迭代器 |
不等运算符包括: != 和 <> | 仅包含 != |
反引号 `` & repr函数 | 仅允许使用 repr函数 |
exec 语句 | exec() 函数 |
print 语句 | print() 函数 |
a. 异常捕获的语法 : except exc, var b. 所有异常类型的对象都是可以被直接抛出的 c. raise语句使用了逗号 将抛出对象类型和参数分开 |
a. 使用 as 作为关键字 : except exc as var b. 只有继承自 BaseException 的对象才可以被抛出 c. 不再使用此种写法 |
添加关键字 : as with True False None , 添加 nonlocal语句 引入抽象基类(Abstraact Base Classes, ABCs) 容器类和迭代类被ABCs化, cellections 模块新增多个类型 |
|
3. 模块改名 | |
_winreg | winreg |
ConfigParser | configparser |
Queue | queue |
copy_reg | copyreg |
SocketServer | socketserver |
repr | reprlib |
new, md5, gopherlib等模块被删除 | |
4. 数据类型 | |
存在 long类型, 不存在 bytes类型 | 去除 long类型, 新增 bytes类型 |
存在 iterkeys()等函数 | dict的.keys()、.items 和.values()方法返回迭代器, 去除 dict.has_key() , 使用 in代替 |
5. 输入输出 | |
raw_input("提示信息") 得到是 str类型 , input("提示信息") 得到是 int类型 | input("提示信息") 统一得到是 str类型 |
file( ... ) open( ... ) 打开文件 | 仅能使用 open( ... ) 或加上with |
map()内置函数 & filter()内置函数 : <built-in function filter>, 返回列表 | map类 & filter类 : <filter object at 0x10d8bd3c8>, 返回可迭代对象 |
python2&python3的更多相关文章
- python2 python3区别(续)
1.除法 Python2 Python3 int/int → int int/int → float python2下整数除以整数返回整数类型,python3下整数除以整数返回浮点数类型 当某些语句假 ...
- python2 python3区别
Python开发团队将在2020年1月1日停止对Python2.7的技术支持,但python2的库仍然比较强大(在 pip 官方下载源 pypi 搜索 Python2.7 和 Python3.5 的第 ...
- Ubuntu安装Python2+Python3
sudo apt-get install python2.7 python2.7-dev sudo apt-get install python3 命令: python 默认执行python2 pyt ...
- Ubuntu16.04 下python2 | python3
在终端分别输入python,python2,python3 python和python2默认都是python2 python3才是python3 Ubuntu下是默认没有pip的,需要自己手动安装 s ...
- windows和linux下 Python2,Python3 的环境及安装
目录 windows和linux下 Python2,Python3 的环境及安装 window下安装 一. 手动安装 二. pip安装 linux下 安装 更新Python 笔者有话 windows和 ...
- 同时安装 Python2 & Python3 cmd下版本自由选择
系统:win7 python2.7,python3.6同时安装,于是问题来了,python27与python36文件夹下的文件名都是python.exe 这样在cmd下,直接输入python,自动执行 ...
- Python之路Python3【第零篇】Python2 & Python3区别持续更新~
print def print(self, *args, sep=' ', end='\n', file=None): # known special case of print "&quo ...
- Mac打造python2 python3开发环境
最新版的MacOS Sierra默认带的python环境仍然为2.7.10,本文将介绍使用Brew安装python3.5并做简单的配置,打造python2,python3共存的开发环境 直接尝试bre ...
- 一台电脑 一起跑python2 python3
我习惯使用python2.7,命令都是使用的python和pip,这时候装了python3.4,首先到python3下修改python.exe,pythonw.exe为python3.exe,pyth ...
随机推荐
- volatile和synchronized
volatile是变量修饰符,而synchronized则作用于一段代码或方法:看如下三句get代码: int i1; int geti1() {return i1;} vo ...
- 说说xgboost算法
xgboost算法最近真是越来越火,趁着这个浪头,我们在最近一次的精准营销活动中,也使用了xgboost算法对某产品签约行为进行预测和营销,取得了不错的效果.说到xgboost,不得不说它的两大优势, ...
- 使用tomcat插件运行java web项目
1 新建javaweb项目 使用骨架创建javaweb项目,具体步骤不熟悉的参见上一篇文章[idea集成maven]. 2 添加依赖 <dependency> <groupId> ...
- Java面试集合(二)
前言 大家好,给大家带来Java面试集合(二)的概述,希望你们喜欢 二 1.请问线程有哪些状态? 新建状态(New) 就绪状态(Runnable) 运行状态(Running) 阻塞状态(Blocked ...
- Spring IOC容器的实现原理
1 概述 1.1 依赖反转模式 在Java中,一个复杂的功能一般都需要由两个或者两个以上的类通过彼此合作来实现业务逻辑的,这使得每个对象都需要与其合作的对象的引用.如果这个获取依赖对象的过程需要自己去 ...
- HDFS环境搭建(单节点配置)
[参考文章]:hadoop集群搭建(hdfs) 1. Hadoop下载 官网下载地址: https://hadoop.apache.org/releases.html,进入官网根据自己需要下载具体的安 ...
- Liferay7 BPM门户开发之21: 理解消息总线(Message Bus)体系
Liferay Message Bus提供了松耦合的消息发送接收机制(生产和消费的设计模式),用于本地服务,不支持远程服务,支持集群. 主要用途: 两个或多个插件之间的通讯. 在事件中发送搜索索引,比 ...
- python语法基础-初始化/继承
写了一些程序,基本上都是直接def函数 然后在main方法中 调用 但是在一些应用程序中 会有基本语法的使用(初始化,继承) 初始化: 1.在程序执行时一定执行一次的操作 2.python中初始化in ...
- 微服务开发有道之把项目迁移到Kubernetes上的5个小技巧
我们将在本文中提供5个诀窍帮你将项目迁移到Kubernetes上,这些诀窍来源于过去12个月中OpenFaas社区的经验.下文的内容与Kubernetes 1.8兼容,并且已经应用于OpenFaaS ...
- 疫苗:JAVA HASHMAP的死循环
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环.这个事情我4. ...