python2和python3 的区别_python3和2的区别-程序员宅基地

技术标签: python  

python2和python3 的区别有哪些?

python2和python3分别是python的两个版本

1.print方法

python2既可以使用小括号的方式,也可以使用一个空格来分隔打印内容,比如 print ‘hi’;

python3使用print必须要用小括号包含打印内容,比如print(“hi”)

2.编码

python2中使用ASCII编码,需要更改更改字符集(添加coding:utf-8)才能正常支持中文

python3中使用utf-8,支持中文

3.除法运算

python2中 / 除法规则是整除,结果为整数,把小数部分完全忽略掉,要想真除需要转为浮点数再除

​ //整数相除,与/相同,取整

python3 / 是真除,会得到小数

// 是地板除,取整

在这里插入图片描述

4.数据类型

python2整型有长整形和整型

python3只有整型,范围是无限大

5.python3中有f格式化,python2没有
6.range方法

python3中没有xrange方法,只有range方法

python2中range(1,10)返回列表,python3返回range可迭代对象,节约内存

7.市场差异

python2:官方通知python2 2020开始不再维护,但企业很多代码都是python2,python2有很大的用户基群故会出现历史遗留问题,
需要很长时间的迁移过度到python3
python3:最新版本,但目前市场使用量不大

8.字符串

python2中Unicode表示字符串序列,str表示字节序列

python3中str表示字符串序列,byte表示字节序列

9.input

在Python2中raw_input()和input( ),两个函数都存在,其中区别为:

1)raw_input():将所有输入作为字符串看待,返回字符串类型

2)input():只能接收"数字"的输入,在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型(int, float )

在Python3中raw_input()和input( )进行了整合,去除了raw_input(),仅保留了input()函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。

10.异常处理

1)Python2中捕获异常的语法为except exc, var,Python3中捕获异常的语法为except exc as var,使用语法except (exc1, exc2) as var可以同时捕获多种类别的异常。 Python 2.6已经支持这两种语法。

2)在Python2时代,所有类型的对象都是可以被直接抛出的,在Python3时代,只有继承自BaseException的对象才可以被抛出。

3)Python2中触发异常可以用raise IOError, "file error"或raise IOError(“file error”)两种方式,Python3中触发异常只能用raise IOError("file error”)。

4)异常StandardError 被Python3废弃,统一使用Exception

5)在Python2时代,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情,在Python3中可以看出,设计者让异常变的更加专一,只有在错误发生的情况才能去用异常捕获语句来处理。

11.比较符

Python2 中任意两个对象都可以比较,11 < 'test’返回True

Python3中只有同一数据类型的对象可以比较,11 < 'test’报错,需要调用正则判断

import re  
11 < int('test') if re.compile('^[0-9]+$').match('test') else 0 
12.包的定义

Python2:文件夹中必须有_ _ init _ _.py文件

Python3:不需要有_ _ init _ _.py文件

13.打开文件

Python2中使用file( … ) 或 open(…)

Python3中只能使用open(…)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_50426379/article/details/124221372

智能推荐

linux gcc-c++等依赖安装以及防火墙基础命令_gcc-c++安装包-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏7次。linux gcc-c++等依赖安装以及防火墙基础命令_gcc-c++安装包

sybase安装字符集_sybase12.5添加字符集-程序员宅基地

文章浏览阅读1.6k次。我是在windows环境下安装了一个sybase数据库。1、找到要安装的字符集目录D:\ProgramFiles\sybase12.5\charsets\cp850 ,这个目录是在sybaes的安装目录;sybae默认不会安装所有的字符集,如果你需要的字符集数据库没有安装的话;可以自行进行安装。在cp850同级目录还有许多的其他字符集。2_sybase12.5添加字符集

一文了解路由平台的 Cisco IOS 和 IOS XE 命名约定,看这篇就够了_ios xe system 在哪些设备-程序员宅基地

文章浏览阅读4.9k次。文章目录概述命名约定一致性IOSCisco IOS XE 软件版本 16 和 17IOS XE 软件版本 3SIOS XE Train 标识符物理平台虚拟平台IOS经典Cisco IOS 软件版本 15IOS 经典列车标识符物理平台概述命名约定一致性对某事物进行任何命名约定的全部意义在于使事物保持一致和统一。遵守约定可为专业人员提供基本规则,让他们坚持已知的内容,为现在和未来的员工以及使用思科产品的人员提供清晰简洁的信息。本文概述了Cisco 路由平台的 Cisco IOS 命名约定,包括 IOS _ios xe system 在哪些设备

Nginx反向代理L4后进行keepalived检测_l4的代理-程序员宅基地

文章浏览阅读442次。1、10和11上安装nginx代理12和13和keepalived并配置yum install nginx keepalived -yvim /etc/nginx/nginx.conf末尾添加stream { upstream kube-apiserver { server 10.4.7.12:6443 max_fails=3 fail_timeout=30..._l4的代理

Java后台获取小程序用户信息和登录_java 小程序 后端获得userinfo 2024-程序员宅基地

文章浏览阅读2.1k次。登录请求体public class MiniProgramLoginCommand { private String jsCode; private String encryptedData; private String iv;}核心代码private static final Logger logger = LoggerFactory.getLogger(XX..._java 小程序 后端获得userinfo 2024

HDFS(12)--HDFS的javaAPI操作_java hdfs api filesystem exists-程序员宅基地

文章浏览阅读1.9k次。创建maven工程并导入jar包<repositories><repository><id>cloudera</id><url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>&..._java hdfs api filesystem exists

随便推点

【转载】WPF自定义控件与样式(1)-矢量字体图标(iconfont)_/k.framework.controls;component/resources/#sf2015-程序员宅基地

文章浏览阅读1.4k次。原文地址:http://www.cnblogs.com/anding/p/4961215.html一.图标字体  图标字体在网页开发上运用非常广泛,具体可以网络搜索了解,网页上的运用有很多例子,如Bootstrap。但在C/S程序中使用还不多,字体图标其实就是把矢量图形打包到字体文件里,就像使用一般外置字体一样的使用,因此Winform、WPF中都是可以用的。  在我们多个_/k.framework.controls;component/resources/#sf2015

k8s gcr.io/google-samples/hello-frontend:1.0 镜像无法下载_docker pull gcr.io/google-samples/node-hello:1.0-程序员宅基地

文章浏览阅读2.5k次。Failed to pull image "gcr.io/google-samples/hello-frontend:1.0": rpc error: code = Unknown desc = Error response from daemon: Get https://gcr.io/v2/: net/http: request canceled while waiting for conne..._docker pull gcr.io/google-samples/node-hello:1.0

vector数组的初始化_vector数组初始化-程序员宅基地

文章浏览阅读2.2k次。1.已知元素的初始化vector a={1,2,3,4,5};2.需要输入元素的初始化(1)先将vector中所有元素初始化为0vector a(n)或vector a(n,0)#include<iostream>#include<vector>using namespace std;int main(){ int n; cin >&..._vector数组初始化

二级c语言105道上机题库,微机原理及应用习题105道-程序员宅基地

文章浏览阅读5.3k次。《微机原理与应用》习题1. 求ADDRI开始单元中连续存放的两个双字数据之和,将结果存放在ADDR2开始的单元,并将结果在显示器上显示出来。(假定和不超过双字) 2. 在一个首地址为STR、长度为N的字符串中查找“空格”,找到则向DL中送1,否则向DL中送-1。 3. 将两位十六进制数转换成ASCII码,并送屏幕显示,要求使用顺序结构实现。 4. 使用分支结构实现将1位十六进制数转换成ASCII码..._自1000h单元开始有1000个单字节带符号数

python fabric2.X版本-程序员宅基地

文章浏览阅读998次。2019独角兽企业重金招聘Python工程师标准>>> ..._python通过fabric2可以用rsync吗

DAO设计模式_dao设计模式最广泛-程序员宅基地

文章浏览阅读278次。DAO (Data Access Object,数据访问对象)的主要功能是数据操作,提供多个原子性的DAO操作,如增加、修改、删除等,都于原子性的操作。DAO主要由以下几个部分组成:1.DatabaseConnection:专门负责数据库的打开与关闭操作的类。2.VO:主要由属性、setter、getter方法组成3.DAO:主要定义操作的接口,定义一系列数据库的原子性操_dao设计模式最广泛