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 ...
随机推荐
- mysql 存储过程 CONCAT 字符串拼接
mysql 存储过程 CREATE PROCEDURE pro_province_report (IN startDate VARCHAR(),IN endDate VARCHAR(),IN Sour ...
- 使用ILMerge 打包C# 绿色免安装版程序
使用ILMerge工具,将C#项目debug目录下的exe及其依赖的dll文件打包成一个exe文件,直接双击就可运行. 使用工具: ILMerge :http://www.microsoft.com/ ...
- HTML各个版本以及对应doctype
HTML发布的正式历史版本: 1.HTML2.0 2.HTML3.2 3.HTML4.0 4.HTML4.01 5.XHTML1.0 6.XHTML1.1 7.XHTML2.0 中途放弃,未完成 8 ...
- Eclipse 中打包插件 Fat Jar 的安装与使用
Eclipse可以安装一个叫Fat Jar的插件,用这个插件打包非常方便,Fat Jar的功能非常强大. 首先要下载Fat Jar,下载地址:https://sourceforge.net/proje ...
- LabVIEW(十六):多列列表框控件
1.多列列表框控件:前面板右键>列表.表格和树>多列列表框2.默认情况下只显示列首,可设置显示行首:前面板选中多列列表框右键>显示>行首3.LabVIEW中提供42种自带的图标 ...
- Linux下MySQL的简单操作
Linux下MySQL的简单操作 更改mysql数据库root的密码 首次进入数据库是不用密码的: [root@localhost ~]# /usr/local/mysql/bin/mysql -ur ...
- nRF52832 矩阵按键调试 同一列上的按键 任意两个按键 按下 检测不到低电平(电平拉不下来)
参考链接:https://blog.csdn.net/zhanghuaishu0/article/details/78505045 调试过程中发现 同一列上的按键 任意两个按键 按下 检测不到低电平( ...
- Python基础教程(第3版) 笔记(三)
1.9.1让脚本像普通程序一样在UNIX中运行脚本,只需将下面的代码作为脚本的第一行, 就可在UNIX中轻松运行脚本: #!/usr/bin/env python 要像普通程序一样运行脚本,还必须将其 ...
- .NET 构造DataTable返回多个json值
有时候我们使用Ajax链接一般处理程序需要返回多个值,然而这些数据并非在一个查询表内,此时便想到构造一个虚拟的DataTable,这样就可以返回多个值了(当然有很多办法,这是其中一种 ). 首先我们需 ...
- Java的语法糖
1.前言 本文记录内容来自<深入理解Java虚拟机>的第十章早期(编译期)优化其中一节内容,其他的内容个人觉得暂时不需要过多关注,比如语法.词法分析,语义分析和字节码生成的过程等.主要关注 ...