你应该是刚接触Python吧,建议直接学Python3.x
下面是Python2.x与3.x版本区别:
Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于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的第三方库有Twisted, py2exe, PIL等。
大多数第三方库都正在努力地相容Python 3.0版本。即使无法立即使用Python 3.0,也建议编写相容Python 3.0版本的程式,然后使用Python 2.6, Python 2.7来执行。
Python 3.0的变化主要在以下几个方面:
1.print 函数
print语句没有了,取而代之的是print()函数。 Python 2.6与Python 2.7部分地支持这种形式的print语法。在Python 2.6与Python 2.7里面,以下三种形式是等价的:
print "fish"然而,Python 2.6实际已经支持新的print()语法:
from __future__ import print_function2.Unicode(这是一个极其好的改进)
Python 2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。
现在, 在 Python 3,我们最终有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和 bytearrays。
由于 Python3.X 源码文件默认使用utf-8编码,这就使得以下代码是合法的:
>>> 中国 = 'china'Python 2.x
>>> str = "我爱北京天安门"Python 3.x
>>> str = "我爱北京"3.除法运算
Python中的除法较其它语言显得非常高端,有套很复杂的规则。Python中的除法有两个运算符,/和//
首先来说/除法:
在python 2.x中/除法就跟我们熟悉的大多数语言,比如Java啊C啊差不多,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。
在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。
Python 2.x:
>>> 1 / 2Python 3.x:
>>> 1/2注意的是并不是舍弃小数部分,而是执行floor操作,如果要截取小数部分,那么需要使用math模块的trunc函数
python 3.x:
>>> import math4.异常
在 Python 3 中处理异常也轻微的改变了,在 Python 3 中我们现在使用 as 作为关键词。
捕获异常的语法由 except exc, var 改为 except exc as var。
使用语法except (exc1, exc2) as var可以同时捕获多种类别的异常。 Python 2.6已经支持这两种语法。
1. 在2.x时代,所有类型的对象都是可以被直接抛出的,在3.x时代,只有继承自BaseException的对象才可以被抛出。
2. 2.x raise语句使用逗号将抛出对象类型和参数分开,3.x取消了这种奇葩的写法,直接调用构造函数抛出对象即可。
在2.x时代,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情,在3.x中可以看出,设计者让异常变的更加专一,只有在错误发生的情况才能去用异常捕获语句来处理。
5.xrange
在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。
这个表现十分像生成器(比如。"惰性求值")。但是这个 xrange-iterable 是无穷的,意味着你可以无限遍历。
由于它的惰性求值,如果你不得仅仅不遍历它一次,xrange() 函数 比 range() 更快(比如 for 循环)。尽管如此,对比迭代一次,不建议你重复迭代多次,因为生成器每次都从头开始。
在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出命名异常)。
import timeitPython 2
print 'Python', python_version()Python 3
print('Python', python_version())6.八进制字面量表示
八进制数必须写成0o777,原来的形式0777不能用了;二进制必须写成0b111。
新增了一个bin()函数用于将一个整数转换成二进制字串。 Python 2.6已经支持这两种语法。
在Python 3.x中,表示八进制字面量的方式只有一种,就是0o1000。
python 2.x
>>> 0o1000python 3.x
>>> 010007.不等运算符
Python 2.x中不等于有两种写法 != 和 <>
Python 3.x中去掉了<>, 只有!=一种写法,还好,我从来没有使用<>的习惯
8.去掉了repr表达式``
Python 2.x 中反引号``相当于repr函数的作用
Python 3.x 中去掉了``这种写法,只允许使用repr函数,这样做的目的是为了使代码看上去更清晰么?不过我感觉用repr的机会很少,一般只在debug的时候才用,多数时候还是用str函数来用字符串描述对象。
def sendMail(from_: str, to: str, title: str, body: str) -> bool:9.多个模块被改名(根据PEP8)
StringIO模块现在被合并到新的io模组内。 new, md5, gopherlib等模块被删除。 Python 2.6已经支援新的io模组。
httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib被合并到http包内。
取消了exec语句,只剩下exec()函数。 Python 2.6已经支援exec()函数。
10.数据类型
1)Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long
2)新增了bytes类型,对应于2.X版本的八位串,定义一个bytes字面量的方法如下:
>>> b = b'china'str对象和bytes对象可以使用.encode() (str -> bytes) or .decode() (bytes -> str)方法相互转化。
>>> s = b.decode()3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有 dict.has_key(),用 in替代它吧 。
简单的说,2是旧3是新,3是2的升级版,3完全高于2,2是时代的眼泪3是现在和未来,2逐渐被淘汰3用的人越来越多。
之前两个版本共存只是因为诸多package的更新换代并没有跟上,但是到了现在只要还有活人维护的package基本都兼容3了,然而新建的package却越来越多不兼容2。使用2的意义基本没有了,日常用3大不了留一个2备用就行。
拓展回答:
Python, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[3] 有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。
需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
7月20日,IEEE发布2017年编程语言排行榜:Python高居首位。
本回答被网友采纳python3与python2的区别(详细)
Python3与Python2的主要区别 一、语法变化 1. print语句改为函数:Python 3中将print视为一个函数,使用时需加上括号。例如,Python 2中的`print "Hello"`在Python 3中应写作`print`。2. 增强型字符串:Python 3中的字符串类型更为强大,加入了更多的方法,并实现了真正的Unicode支持。同时,Python...
python2与python3的区别齐全【整理】
Python2与Python3的主要区别如下:1. 核心类差异:Python3将Unicode支持内置,仅使用unicode字符串,而Python2区分str和unicode。Python3导入采用绝对路径,避免导入冲突。Python3采用新式类,所有类都必须继承自object。Python3对缩进要求严格,仅接受统一的tab或space,避免了Python2中的混用问题。2. 废弃功...
python3和python2区别有什么
3. Python2 中存在老式类和新式类的区别,Python3 统一采用新式类。新式类声明要求继承 object,必须用新式类应用多重继承。4. Python3 使用更加严格的缩进。Python2 的缩进机制中,1 个 tab 和 8 个 space 是等价的,所 以在缩进中可以同时允许 tab 和 space 在代码中共存。这种等价机制会导致部...
python3和Python2的区别
Python2和Python3是Python的两个主要版本,两个版本在语法和库的使用上有一些区别。Python3是Python的最新版本,它在语言设计上做了一些改进,修复了一些Python2中存在的问题。Python3的一些重要改进包括:支持unicode:Python3默认使用Unicode编码,这意味着它可以处理不同语言的字符集。print函数:Python3中...
python2和python3有哪些主要区别?
Python2与Python3之间的主要区别主要体现在语言功能、编码方式、字符串处理、布尔值表示以及迭代器与非局部变量上。在语句实现方面,Python2中的print语句是直接输出,而Python3将其转化为函数形式,接收参数执行输出。Python2中print语句后面可以接元组,而Python3可以接收多个参数。若需在Python2中将print作为...
Python 2 和 Python 3 有哪些主要区别
Py3.1性能比Py2.5慢15%,还有很大的提升空间。2.编码 Py3.X源码文件默认使用utf-8编码,3. 语法 1)去除了<>,全部改用!= 2)去除``,全部改用repr()3)关键词加入as 和with,还有True,False,None 4)整型除法返回浮点数,要得到整型结果,请使用\/\/ 5)加入nonlocal语句。使用noclocal x...
Python2和Python3的区别
Python2与Python3的主要差异在于它们的设计理念和语法更新。Python3作为新版本,尽管不支持Python2的向下兼容性,但引入了更现代化的功能。Python2的print函数在Python3中被替换为print()函数,且默认使用Unicode编码,支持中文字符。除法运算规则也有所变化,整数除法默认返回浮点数。异常处理语法和异常类型在...
python哪个好
1. Python的版本多样性 Python自诞生以来,已经推出了多个版本,包括Python2和Python3。Python3是Python2的升级版,拥有更广泛的社区支持和更强大的功能。在选择Python版本时,需要考虑自己的项目需求和个人技能水平。2. Python 2和Python 3的差异 Python 2和Python 3在某些语法和功能上存在差异。Python 3...
python版本的区别 - Python2和Python3的区别
以下是Python2.x和Python3.x的几点关键差异:代码风格:Python2.x的源码可能存在冗余和不规范,而Python3.x则更注重代码简洁和优美。编码处理:Python2.x默认使用ASCII编码,而Python3.x采用UTF-8编码。整型处理:Python3.x废除了长整型,统一使用int。打印函数:Python2.x用print语句,Python3.x改用...
“python2”和“python3”有什么区别?
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C\/C++)很轻松地联结在一起。常见的一种应用...