python2和3区别,用python2还是python3
00-1010
python2和python3的版本,目前主要分为两类:
Python2 . x,通称Python 2,最新版本是2.7.18。Python3.x的版本叫Python3,最新版本是3.9.1。
Python2到Python3是大版本升级,两者之间有很多不兼容的地方。
在使用的时候,当然是Python的新版本更好,老版本的代码更难维护。
在维护旧版本的代码时,需要知道版本之间的主要区别。有时候看到一些代码的语法特征就能大致猜到是什么版本。
00-1010 1.打印功能:
Python 2:打印是一种陈述
打印“HelloWorld!
#结果:HelloWorld!Python 3:打印是一个函数
print(HelloWorld!)
#结果:HelloWorld!
打印“HelloWorld”
# Result:语法错误:缺少对“print”的括号调用。diddyoumeanprint( hello world )?2.整数除法:
Python 2: 3/2的结果是整数
印刷3/2
#结果:1
印刷3/2.0
# Result:1.5 Python 3:3/2的结果是浮点数
印刷(3/2)
#结果:1.5
打印(3/2.0)
#结果:1.53.Unicode:
Python 2:有两种类型的字符串:str和unicode
你好
普林塔
# Result:文件中的语法错误:非ASCII字符 \ XE6 .但没有编码定义;seehttp://python.org/dev/peps/pep-0263/fordetails
#在Python2中,如果代码包含非英文字符,需要在代码文件的开头声明编码#_*_coding:utf-8_*_。
你好
普林塔
# Result: Hello Python 3: String默认为Unicode
你好
打印(一份)
# Result:你好,Python 3中的str相当于Python 2中的unicode
4.异常处理:
Python 2:
尝试:
结果=1/0
打印结果
exceptZeroDivisionError,e:
打印字符串
#结果:integerdivisionormodulobyzero或
尝试:
结果=1/0
打印结果
exceptZeroDivisionErrorase:
打印字符串
# Result:integerdivisormodulebyte python 3:仅支持as关键字。
尝试:
结果=1/0
打印(结果)
exceptZeroDivisionErrorase:
打印(字符串)
#结果:divisionbyzero5.xrange:
Python 2:有两种方法:range和xrange。
差异:
Range返回一个列表,该列表在被调用时返回整个序列。
Xrange返回一个迭代器,它在每个循环中生成序列的下一个数字。
#范围
打印范围(4)
#结果:[0,1,2,3]
#xrange
printxrange(4)
# Result: xrang(4)Python 3: xrange方法不再受支持。
打印(范围(4))
#结果:范围(0,4)
(4):
print(i,end= )
# Result:0123 Python 3中的range方法相当于Python 2中的xrange方法。
6 .地图功能:
Python 2:映射函数返回列表
print map(x : x 1,range(5))
# Result: [1,2,3,4,5] Python 3: map函数返回迭代器
打印(地图(x : x 1,范围(5)))
#结果:mapobjectat0x00000233A7B85E10
打印(列表(map(lambdax:x 1,range(5)))
#结果:[1,2,3,4,5]过滤函数在Python 2和Python 3中的区别是一样的。
7.不支持has_key:
Python 2:
my_dict={age:30, name: 张三 } print my _ dict . has _ key( age )print age in my _ dict
# result: True#TruePython 3:
my_dict={age:30, name: 张三 }print(ageinmy_dict)
#结果:正确
print(person.has_key(age ))
# Result:属性错误: dict objecthasnoattribute has _ key 。这就是两个版本的区别。新手建议学习Python3,这是未来的发展趋势。正在学习Python2的同学不要着急。记住以上知识点就可以快速上手Python3了!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。