python3 x和python2 x区别_Python知识:Python 3.x和2.x版本的使用区别

使用Python时都需要安装相应的版本,不同的版本适用性也不一样。

今天从除法算子、打印功能、Unicode、Xrange、错误处理、未来模块方面看看Python2.x和Python3.x之间的区别。

除法算子

在移植代码或在python2.x中执行python3.x代码时,要注意整数除法的更改:最好使用浮动值(如7.0/5或7/5.0)来获得预期的结果。

print 7 / 5

print -7 / 5

'''

Output in Python 2.x

1

-2

Output in Python 3.x :

1.4

-1.4

打印功能

print关键字在Python2.x中被打印()函数在Python3.x中。

如果在Python 2之后添加了空格,解释器将其计算为表达式,则括号在Python 2中起作用。

注意:如果在python 3.x中不使用括号,我们就会得到SyntaxError。

print 'Hello, Geeks' # Python 3.x doesn't support

print('Hope You like these facts')

'''

Output in Python 2.x :

Hello, Geeks

Hope You like these facts

Output in Python 3.x :

File "a.py", line 1

print 'Hello, Geeks'

^

SyntaxError: invalid syntax

Unicode:

在Python 2中,隐式str类型是ASCII。

在Python3.x中,隐式str类型是Unicode。

print(type('default string '))

print(type(b'string with b '))

'''

Output in Python 2.x (Bytes is same as str)

Output in Python 3.x (Bytes and str are different)

'''

Python2.x也支持Unicode

print(type('default string '))

print(type(u'string with b '))

'''

Output in Python 2.x (Unicode and str are different)

Output in Python 3.x (Unicode and str are same)

'''

Xrange:

Python2.x的xrange()在Python3.x中不存在。

在Python2.x中,Range返回一个列表,即range(3)返回[0,1,2],

而xrange返回xrange对象,即xrange(3)返回与Java迭代器类似的迭代器对象,并在需要时生成数字。

range()需要多次迭代相同的序列,提供了一个静态列表。

Xrange()需要每次都重新构造序列。Xrange()不支持片和其他列表方法。

Xrange()的优点:当任务在一个大范围内迭代时,节省内存。

在Python3.x中,Range函数执行Python2.x中的xrange函数,坚持使用Range保持代码的可移植性

for x in xrange(1, 5):

print(x),

for x in range(1, 5):

print(x),

'''

Output in Python 2.x

1 2 3 4 1 2 3 4

Output in Python 3.x

NameError: name 'xrange' is not defined

错误处理:

在python 3.x中,必须要使用“as”关键字。

try:

trying_to_check_error

except NameError, err:

print err, 'Error Caused' # Would not work in Python 3.x

'''

Output in Python 2.x:

name 'trying_to_check_error' is not defined Error Caused

Output in Python 3.x :

File "a.py", line 3

except NameError, err:

^

SyntaxError: invalid syntax

'''

try:

trying_to_check_error

except NameError as err: # 'as' is needed in Python 3.x

print (err, 'Error Caused')

'''

Output in Python 2.x:

(NameError("name 'trying_to_check_error' is not defined",), 'Error Caused')

Output in Python 3.x :

name 'trying_to_check_error' is not defined Error Caused

'''

_模块:

__WORWORY__模块帮助迁移到Python3.x。

如果想在2.x代码中支持Python3.x,使用__future__在我们的代码中导入。

例如,在下面的Python2.x代码中,我们使用Python3.x的整数除法行为。

# In below python 2.x code, division works

# same as Python 3.x because we use __future__

from __future__ import division

print 7 / 5

print -7 / 5

产出:

1.4

-1.4

在Python2.x中使用方括号的另一个例子是_WORWORY__模块:

from __future__ import print_function

print('GeeksforGeeks')

产出:

GeeksforGeeks

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

select EINTR

实验环境:ubuntuKylin 13.10 在程序里同时有select和定时器, select 会被定时器产生的EINTR中断 在定时器的设置中增加了SA_RESTART和sigprocmask,发现都不管用 只能自己判断EINTR来重启select了。 在select被EINTR中断时,我输…

移除首页-重回首页

之前发布了一篇文章《订餐系统之获取淘宝外卖订单》,因为是关于淘宝外卖的,所以文中出现这个词时,都加了链接,还设置了 target_blank,就是为了让看的人方便点击,查看。后来,博客园说这个文章中含有推广链接…

sap客户信贷_信贷控制,FD32的销售值不会变化,只有应收总额的变化

请去检查 行项目类型的设定.里面有个栏位 Credit active , 我基本可以确定这里没有勾上才会出现你的问题.ID: Item with active credit function / relevant for creditSpecifies whether the credit management functions (credit checks and update statistics) for order, d…

Scrum之 Sprint计划会议

在sprint第一天召开sprint计划会议,这个会议分为两部分,计划会议1由PO、SM和Team参加,主要是从产品backlog中挑选出需要放到当前sprint下的既定产品backlog,然后由SM、Team参加计划会议2,把既定产品backlog的故事拆分成…

树莓派dht11 python_树莓派使用DHT11温湿度传感器

使用wiringpi编写C程序:如下程序借鉴了网上一老外的程序,忘了原帖地址在哪。#include #include #include #include #define MAX_TIME 85#define DHT11PIN 7#define ATTEMPTS 5 //retry 5 times when no responseint dht11_val[5]{0,0,0,…

java 输出流_Java中输入输出流方法总结

4.如果你创建了一个文件对象,你可以使用下面的方法来获得文件的相关信息,对文件进行操作。1)文件名的操作public String getName();返回文件对象名字符串,串空时返回nullpublic String toString();返回文件名字符串public String getParent()…

Windows 8操作技巧之快捷键大全

Windows 8操作系统发布之后,因为其新颖的界面和对触屏友好的设计,使许多长期使用Windows系统的用户,也觉得一时难以适应,一些操作方式也不知道如何去实现。在Windows系统中,快捷键无疑是提高操作速度的杀手锏。然而&am…

Scrum之 站立例会

在sprint期间,每天都会通过站立例会来进行沟通,以下我将把会议主要内容罗列一下。(以下会议内容来自于Scrum Checklists) 会议内容 目标 团队成员间工作进度的沟通和协调 会议准备 邀请与会者:团队所有成员、Scrum Master、产品负…

Java中带标签的break,continue

首先不带标签的break,continue 就不介绍了。大家平时用的最多的也就是这样的情况了。 首先Java中没有goto&#xff0c;但是可以利用带标签的break, continue来实现类似的跳转。 首先来看一个例子&#xff1a; label:for (int i 0; i < 10; i) {for (int j 0; j < 10; j…

Scrum之 回顾会议

Scrum中Sprint计划会议是最重要的事件&#xff0c;第二重要的事件就是回顾会议&#xff0c;因为这是团队做改进的最佳时机。如果没有回顾&#xff0c;就会发现团队在重犯相同的错误。在sprint的评审会议后&#xff0c;团队需要进行一次回顾会议&#xff0c;以下我将把会议主要内…

java删除换行符号_如何从Java中删除文件中的换行符?

如其他答案所述&#xff0c;您的代码主要String.replace(...)不起作用&#xff0c;因为不会更改目标字符串。(它不能 - Java字符串是不可变的&#xff01;)它实际上做的是创建一个新的String&#xff0c;其中的字符根据需要进行了更改。但是你的代码然后扔掉那个String ...这是…

C#学习之按钮点击事件

描述&#xff1a;asp.net中服务器控件Button的点击事件OnClientClick和OnClick的区别&#xff1f; 解答&#xff1a;http://www.cnblogs.com/ypfnet/archive/2012/12/24/2830771.html&#xff08;作者&#xff1a;代号小子&#xff09; 一、 二者的区别&#xff1a; OnClick是…

Scrum之 评审会议

在sprint周期最后&#xff0c;需要进行一次评审会议&#xff0c;让团队向产品负责人和利益相关者展示已完成的功能。sprint审核的大部分实践用于团队成员展示功能、回答利益相关者对展示的疑问并记录所期望的更改。评审会议可以吸引相关利益者的关注&#xff0c;让其他人了解团…

Bringing up interface eth0: Device eth0 does not seem to be presen

故障现象&#xff1a;51Testing软件测试网.M|{,lbr 51Testing软件测试网l]9H/f[w)h service network restart51Testing软件测试网l^i2t?|5zT8J-s Shutting down loopback insterface: [ OK ]51Testing软…

java的未检查异常有哪些_Java:检查异常与未检查异常

一、异常的介绍Throwable 是 Java 中所有错误和异常的超类。Java 虚拟机仅抛出属于此类(或其子类之一)的实例对象&#xff0c;或者是 throw 语句也可以抛出该对象。同样&#xff0c;catch 子句中的参数类型也只能是此类(或其子类之一)。处于编译时检查异常为目的&#xff0c;Th…

warning:deprecated conversion from string constant to 'char *'解决方案

Linux 环境下当GCC版本比较高时&#xff0c;编译代码可能出现的问题 问题是这样产生的&#xff0c;先看这个函数原型&#xff1a; void someFunc(char *someStr); 再看这个函数调用&#xff1a; someFunc("Im a string!"); 把这两个东西组合起来&#xff0c;用最新的…

利用SVN工具下载OpenCore代码

OpenCore原来使用的是CVS管理代码的。从09年起&#xff0c;更换用SVN管理代码&#xff0c;大家可以用TortoiseSVN软件下载代码&#xff0c;网址是&#xff1a;http://tortoisesvn.net/&#xff0c;安装后tortoiseSVN会和window的资源管理器右键菜单紧密结合在一起&#xff0c;使…

java array_Java 数组

Java 数组数组对于每一门编辑应语言来说都是重要的数据结构之一&#xff0c;当然不同语言对数组的实现及处理也不尽相同。Java语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量&#xff0c;如numbers[100]来代替直接声明100个独立变量number0&#xff…

idea 执行 java jar_idea打包java可执行jar包的实现步骤

1,在项目上鼠标右键 --> Open Module Settings2, Artifacts --> --> JAR --> From modules with dependencies...3, Main Class是你这个项目(脚本)的主方法,就是要运行的类,选一个4,如下图,设置 META-INF/MANIFEST.MF!!!!!切记,不能用默认的(起码我用默认的是不成…

约法三章

与自己约法三章如下&#xff1a; 1. 禁止发表悲观的言论&#xff0c;你是阳光的。哪怕翅羽沉重&#xff0c;依旧头颅高昂。 2. 专注&#xff0c;专注才能让你更有魅力。最近老不能集中注意力。 3. 做好自己。不管怎么样&#xff0c;你都有人在你背后关怀你支持着你&a…