简介:今天,首席执行官指出,要与您分享多少python2的相关内容。如果您能解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
您应该刚刚与Python接触,建议直接学习Python3.x
以下是Python2.x和3.x版本之间的区别:
Python的3.0版本通常称为Python 3000,或称为py3k,用于Short.com.pardy.phed.py.python python的早期版本,这是一个大型升级。
为了不带来太多负担,Python 3.0在设计时不考虑兼容性。
早期Python版本的许多程序不能正常在Python 3.0上实施。
为了照顾现有程序,Python 2.6作为过渡版本,基本上使用Python 2.x的语法和库。同时,python 3.0的迁移被认为允许某些python 3.0的某些语法和函数。
建议使用新的Python程序使用Python 3.0的语法。
除非执行环境无法安装Python 3.0或该程序本身使用不支持Python 3.0的第三方库。当前不支持Python 3.0的第三方库库当前是扭曲的,PY2EXE,PIL,PIL,PIL等。
大多数第三方库都试图与Python 3.0版本相匹配。即使不能立即使用Python 3.0,建议编写兼容Python 3.0版本的程序,然后使用Python 2.6,Python 2.7进行执行。
Python 3.0的变化主要在以下方面:
1.印刷功能
打印语句消失了,它被print()函数替换。
打印“鱼”
print(“鱼”)#注意p p在印刷品后面有一个空间
print(“ fish”)#print()无法带来任何其他参数
但是,Python 2.6实际上支持新print()语法:
来自__future__ import print_function
打印(“鱼”,“熊猫”,sep =',')
2. unicode(这是一个非常好的改进)
Python 2具有ASCII str()类型。Unicode()是独立的,而不是字节。
现在,在Python 3中,我们最终拥有Unicode(UTF-8)字符串,并且一个字节类:字节和字节。
由于python3.x源代码文件默认使用UTF-8编码,因此这使以下代码合法:
中国='中国'
印刷(中国)
中国
Python 2.x
str =“我爱北京天安门”
str
'XE6XX88X91XE7X8XB1XE5X8CX97XE4XBAXACXE5XA9XE5XAE5XAEX89X9X9XA8''
str = u“我爱北京天安门”
str
你“我爱北京天安门”
Python 3.x
str =“我爱北京”
str
'我爱北京'
3.操作除外
Python的部门比其他语言非常高,具有非常复杂的规则。
首先/删除该方法:
在Python 2.x/股息中,它类似于我们熟悉的大多数语言。浮点数的结果。
在Python 3.x/x中,不再执行法律。对于整数之间的阶段,结果也将是浮点。
Python 2.x:
1/2
1.0/2.0
0.5
Python 3.x:
1/2
0.5
请注意,不是要丢弃小数部分,而是要执行地板操作。如果要拦截小数零件,则需要使用数学模块的截短功能
Python 3.x:
导入数学
Math.trunc(1/2)
Math.trunc(-1/2)
4.异常
Python 3中的处理异常也略有变化。在Python 3中,我们现在用作关键字。
语法捕获异常从EXC除外更改,而VAR更改为EXC除外。
使用语法除外(EXC1,EXC2)作为VAR可以同时捕获多种异常。Python2.6支持了这两种语法。
1.在2.x时代,所有类型的对象都可以直接抛弃。在3.x时代,只能抛出从基本感受中继承的对象。
2. x rise语句使用逗号将对象类型和参数分开。3.x取消了这种出色的写作方法,并直接调用构造函数扔进对象。
在2.x时代,除了代码中的程序误差外,异常情况通常会做普通控制结构应该做的事情。可以使用异常的捕获声明来处理情况。
5.xrange
在Python 2中使用迭代对象的使用非常流行。例如:用于循环或列表/集合/字典衍生物。
这种性能与发电机非常相似(例如“价值的惯性”)。但是,这种Xrange-Inoser是无限的,这意味着您可以无限地穿越它。
由于其惯性值,如果您不得穿过一次,则Xrange()函数比range()更快。每次。
在Python 3中,range()像Xrange()一样实现,以便不再存在特殊的Xrange()函数(Python 3中的Xrange()将抛出名称异常)。
导入时间
n = 10000
def test_range(n):
在(n)范围内返回我:
经过
def test_xrange(n):
因为我在Xrange(n)中:
经过
Python 2
打印“ python”,python_version()
打印'
定时范围()'
%TimeIt test_range(n)
打印'
定时xrange()'
%TimeIt test_xray(n)
Python 2.7.6
定时范围()
1000循环,最佳3:433 μs每循环
定时xrange()
1000循环,最佳3:350 μs每循环
Python 3
打印('Python',python_version())
打印 ('
定时范围()')
%TimeIt test_range(n)
Python 3.4.1
定时范围()
1000循环,最佳3:520 μs每循环
打印(Xrange(10))
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Namerror Trackback(大众通话)
ipython-Input-5-5-5D8F9B79EA70在模块()中
---- 1印刷(Xrange(10))
namerror:名称“ Xrange”未定义
6.八角形表示
八块的数量必须写为0O777,并且不能使用原始表格0777;二进制必须写为0B111。
添加了一个新的bin()函数以将整数转换为二进制字符串。Python2.6支持了这两个语法。
在Python 3.x中,只有一种方法可以指示八个防护量的数量,即0o1000。
Python 2.x
0o1000
512
01000
512
Python 3.x
01000
文件“ stdin”,第1行
01000
^
SyntaxError:无效令牌
0o1000
512
7.不等待操作员
在Python 2.x中有两种写作方法!=和
仅在Python 3.x中删除!=一篇写作,好吧,我从来没有使用过它的习惯
8. remifers represpress'
python 2.x中的反引用标记等同于reper函数的角色
``python 3.x中的写作仅允许reper函数。这样做的目的是使代码看起来更清晰吗?但是,我觉得使用reter的机会很少。通常,仅在调试时才使用。在大多数情况下,使用STR函数使用字符串来描述对象。
def sendmail(from _:str,到:str,标题:str:str,身体:str)-bool:
经过
9.多个模块被重命名(根据PEP8)
现在将Stringio模块合并到新的IO模块中。New,MD5,Gopherlib和其他模块已删除。Python2.6支持了新的IO模块。
HTTPLIB,BASEHTPSERVER,CGIHTPSERVER,SimpleHttpserver,Cookie,Cookielib被合并到HTTP软件包中。
EXEC语句被取消,并且仅保留EXEC()函数。Python2.6支持了exec()函数。
10.数据类型
1)py3.x删除了长的类型,现在只有一个整数-i,但是它的行为就像是长长的2.x版本
2)与2.x版本的八个位字符串相对应的新字节类型,定义了字面方法,如下所示:
b = b'china'
类型(b)
输入“字节”
str对象和字节对象可用于使用.encode()或.decode()(bytes -str)方法。
s = b.decode()
s
'中国'
B1 = S.Encode()
B1
B'China'
3)dict的.keys(),。物品,和。values()方法返回到迭代器,而先前的iterkeys()函数被放弃。同时,它也被删除。has_key()。使用代替它。
Python2.7是Python2,Python3.x是Python3版本。
Python2和Python3之间的主要区别:
不同:打印语法使用
Python2.7打印语法使用“ Hello Python”
Python3.7打印语法使用打印(“ Hello Python”)
差异2:raw_input()和输入()
python 2.7 raw_input()input()在Raw_input()的存在中接收字符串输入()以接收数字int /flot。
Python 3.7 RAW_INPUT()不仅存在输入()合并并接收任何格式并返回字符串
差异3:功能CMP()
python 2.7 cmp(x,y)函数用于比较2个对象,如果x y返回-1,如果x == y返回0,则如果x y返回0,则使用1 1 1 1 1 1 1
Python3.7 CMP()不再存在。如果您需要实现比较功能,则需要介绍一个适用于任何对象的操作员模块
它是左侧,遵循的数字是运动的运动数
22,那就是将2向左移至2位
将2转换为第二-in -in -made,即0000 0010
向左移动的左移动将变成0000 1000,即10个防护8
同样,可以这样计算32个:
0000 0011 --- 0000 1100,即十进制12的12
结论:以上是首席CTO注释为每个人编写的Python2相关内容的摘要。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?