问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python2.7和3.0有区别吗

发布网友 发布时间:2022-05-01 09:49

我来回答

2个回答

懂视网 时间:2022-05-10 06:40

区别一:print语法使用

Python2.7 print语法使用 >>> print "Hello Python"

Python3.7 print语法使用 >>> print("Hello Python")

例子:在Python 3.7.0使用双引号触发SyntaxError异常机制 提示Did you mean print("Hello Python3.7")

print 换行和不换行区别

python 2.7 print 不换行使用","即可

python 3.7 print 不换行使用end=""

区别二: raw_input()和input()

Python 2.7 raw_input() input() 都存在 可使用 raw_input()接收字符串string input()接收数字int /flot.

Python 3.7 raw_input()不存在 仅存在input() 两者合并 接收任意格式 返回string

区别三: 函数cmp()

python 2.7 cmp(x,y)函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1

python3.7 cmp()已经不存在了,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象

>>> import operator
>>> operator.eq('hello', 'name');
False
>>> operator.eq('hello', 'hello');
True

区别四:string 字母 大小写字符串

string.letters:包含所有字母(大写或小写)的字符串

Python 3.0中,string.ascii_letters.

热心网友 时间:2022-05-10 03:48

python2.7跟python3.0是有区别的。

1.性能 
Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 
以取得很好的优化结果。 
Py3.1性能比Py2.5慢15%,还有很大的提升空间。 


2.编码 
Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的: 
    >>> 中国 = 'china' 
    >>>print(中国) 
    china 
3. 语法 
1)去除了<>,全部改用!= 
2)去除``,全部改用repr() 
3)关键词加入as 和with,还有True,False,None 
4)整型除法返回浮点数,要得到整型结果,请使用// 
5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量 
6)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数 
   例如: 
     2.X: print "The answer is", 2*2 
     3.X: print("The answer is", 2*2) 
     2.X: print x,                              # 使用逗号结尾禁止换行 
     3.X: print(x, end=" ")                     # 使用空格代替换行 
     2.X: print                                 # 输出新行 
     3.X: print()                               # 输出新行 
     2.X: print >>sys.stderr, "fatal error" 
     3.X: print("fatal error", file=sys.stderr) 
     2.X: print (x, y)                          # 输出repr((x, y)) 
     3.X: print((x, y))                         # 不同于print(x, y)! 
7)改变了顺序操作符的行为,例如x<y,当x和y类型不匹配时抛出TypeError而不是返回随即的 bool值  
8)输入函数改变了,删除了raw_input,用input代替: 
   2.X:guess = int(raw_input('Enter an integer : ')) # 读取键盘输入的方法 
   3.X:guess = int(input('Enter an integer : '))

9)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了 
10)新式的8进制字变量,相应地修改了oct()函数。 
   2.X的方式如下: 
     >>> 0666 
     438 
     >>> oct(438) 
     '0666' 
   3.X这样: 
     >>> 0666 
     SyntaxError: invalid token (<pyshell#63>, line 1) 
     >>> 0o666 
     438 
     >>> oct(438) 
     '0o666' 
11)增加了 2进制字面量和bin()函数 
    >>> bin(438) 
    '0b110110110' 
    >>> _438 = '0b110110110' 
    >>> _438 
    '0b110110110' 
12)扩展的可迭代解包。在Py3.X 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求两点:rest是list 
对象和seq是可迭代的。 
13)新的super(),可以不再给super()传参数, 
    >>> class C(object): 
          def __init__(self, a): 
             print('C', a) 
    >>> class D(C): 
          def __init(self, a): 
             super().__init__(a) # 无参数调用super() 
    >>> D(8) 
    C 8 
    <__main__.D object at 0x00D7ED90> 
14)新的metaclass语法: 
    class Foo(*bases, **kwds): 
      pass 
15)支持class decorator。用法与函数decorator一样: 
    >>> def foo(cls_a): 
          def print_func(self): 
             print('Hello, world!') 
          cls_a.print = print_func 
          return cls_a 
    >>> @foo 
    class C(object): 
      pass 
    >>> C().print() 
    Hello, world! 
class decorator可以用来玩玩狸猫换太子的大把戏。更多请参阅PEP 3129 

4. 字符串和字节串 
1)现在字符串只有str一种类型,但它跟2.x版本的unicode几乎一样。

2)关于字节串,请参阅“数据类型”的第2条目 


5.数据类型 
1)Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long 
2)新增了bytes类型,对应于2.X版本的八位串,定义一个bytes字面量的方法如下: 
    >>> b = b'china' 
    >>> type(b) 
    <type 'bytes'> 
str对象和bytes对象可以使用.encode() (str -> bytes) or .decode() (bytes -> str)方法相互转化。 
    >>> s = b.decode() 
    >>> s 
    'china' 
    >>> b1 = s.encode() 
    >>> b1 
    b'china' 
3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有 
dict.has_key(),用 in替代它吧 


6.面向对象 
1)引入抽象基类(Abstraact Base Classes,ABCs)。 
2)容器类和迭代器类被ABCs化,所以cellections模块里的类型比Py2.5多了很多。 
    >>> import collections 
    >>> print('\n'.join(dir(collections))) 
    Callable 
    Container 
    Hashable 
    ItemsView 
    Iterable 
    Iterator 
    KeysView 
    Mapping 
    MappingView 
    MutableMapping 
    MutableSequence 
    MutableSet 
    NamedTuple 
    Sequence 
    Set 
    Sized 
    ValuesView 
    __all__ 
    __builtins__ 
    __doc__ 
    __file__ 
    __name__ 
    _abcoll 
    _itemgetter 
    _sys 
    defaultdict 
    deque 
另外,数值类型也被ABCs化。关于这两点,请参阅 PEP 3119和PEP 3141。 
3)迭代器的next()方法改名为__next__(),并增加内置函数next(),用以调用迭代器的__next__()方法 
4)增加了@abstractmethod和 @abstractproperty两个 decorator,编写抽象方法(属性)更加方便。 


7.异常 
1)所以异常都从 BaseException继承,并删除了StardardError 
2)去除了异常类的序列行为和.message属性 
3)用 raise Exception(args)代替 raise Exception, args语法 
4)捕获异常的语法改变,引入了as关键字来标识异常实例,在Py2.5中: 
    >>> try: 
    ...    raise NotImplementedError('Error') 
    ... except NotImplementedError, error:

    ...    print error.message 
    ... 
    Error 
在Py3.0中: 
    >>> try: 
          raise NotImplementedError('Error') 
        except NotImplementedError as error: #注意这个 as 
          print(str(error)) 
    Error 
5)异常链,因为__context__在3.0a1版本中没有实现 


8.模块变动 
1)移除了cPickle模块,可以使用pickle模块代替。最终我们将会有一个透明高效的模块。 
2)移除了imageop模块 
3)移除了 audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, MimeWriter, mimify, popen2,  
rexec, sets, sha, stringold, strop, sunaudiodev, timing和xmllib模块 
4)移除了bsddb模块(单独发布,可以从http://www.jcea.es/programacion/pybsddb.htm获取) 
5)移除了new模块 
6)os.tmpnam()和os.tmpfile()函数被移动到tmpfile模块下 
7)tokenize模块现在使用bytes工作。主要的入口点不再是generate_tokens,而是 tokenize.tokenize() 


9.其它 
1)xrange() 改名为range(),要想使用range()获得一个list,必须显式调用: 
    >>> list(range(10)) 
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
2)bytes对象不能hash,也不支持 b.lower()、b.strip()和b.split()方法,但对于后两者可以使用 b.strip(b’  
\n\t\r \f’)和b.split(b’ ‘)来达到相同目的 
3)zip()、map()和filter()都返回迭代器。而apply()、 callable()、coerce()、 execfile()、rece()和reload 
()函数都被去除了

现在可以使用hasattr()来替换 callable(). hasattr()的语法如:hasattr(string, '__name__')

4)string.letters和相关的.lowercase和.uppercase被去除,请改用string.ascii_letters 等 
5)如果x < y的不能比较,抛出TypeError异常。2.x版本是返回伪随机布尔值的 
6)__getslice__系列成员被废弃。a[i:j]根据上下文转换为a.__getitem__(slice(I, j))或 __setitem__和 
__delitem__调用 
7)file类被废弃,在Py2.5中: 
    >>> file 
    <type 'file'> 
在Py3.X中: 
    >>> file 
    Traceback (most recent call last): 
    File "<pyshell#120>", line 1, in <mole> 
       file 
    NameError: name 'file' is not defined

python2.7和3.0有区别吗

有区别的。1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果。 Py3.1性能比Py2.5慢15%,还有很大的提升空间。2.编码 Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的: &gt;&gt;&gt; 中国 = '...

python有多少个版本(python几个版本的区别)

除非执行环境无法安装Python3.0或者程式本身使用了不支援Python3.0的第三方库。目前不支援Python3.0的第三方库有Twisted, py2exe,PIL等。 大多数第三方库都正在努力地相容Python3.0版本。即使无法立即使用Python3.0,也建议编写相容Python3.0版本的程式,然后使用 Python2.6,Python2.7来执行。python所有版本发布时间? Python的...

python有哪些版本

1. Python 2.7:这是Python 2系列的最后一个版本,虽然Python 2已经停止更新,但它在某些领域仍然广泛使用。这个版本支持旧代码的执行,并保持了与早期版本的兼容性。但由于其不支持新的语言特性和库,对于新项目的开发,建议使用更新的版本。2. Python 3.x系列:这是目前主流的Python版本系列,包括多...

力扣上面的python和python3有什么区别?

探讨力扣平台上的Python与Python3之间的区别,需要关注的是它们在实际应用中的差异。Python2.7与Python3在语法层面存在一些细微的差别,但它们在大体上保持了兼容性。在力扣这类编程挑战平台上,使用Python3版本能获得更稳定和现代化的编程体验。Python3在设计上考虑了未来的发展趋势,引入了一些新的特性与...

Python版本怎么选?有什么区别?这就告诉你!

下图概述了Python版本的更新历程,截至现在,Python已更新至3.10.0。接下来,我们将深入探讨Python2与Python3的主要区别。Python2与Python3的选择与差异尽管新版本总是首选,但Python2.0与Python3.0的升级并非无缝衔接。它们之间的主要差异在以下几个关键点:输出:Python2用print关键字,如`print "Hello...

python最新是多少版本

2.x版本中2.7版本跟3.x版本的很多功能就已经很想相似了,况且早些年开源的优质项目都是2.x版本写的,所以官网有两个版本的文档供学习和开发者使用。 如果是初学者建议选择3.6版本,2.x版本当你学熟练之后再去找不同就可以了。现在市面上绝大多数开发都是拿3.x版本在做。 所以2019年之后包括2019年,学Python,选...

django开发哪个版本比较好(2023年最新整理)

django2.0和3.0的区别区别不大,有几个函数变了,url()是在django1、django2中使用,并且在API文档中明确指出,在将来的版本中可能不推荐使用,他还有一个别名为re_path()。path()是django3中使用的函数,是url()的替代品。Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架...

(一) Python版本

Python2与Python3的主要区别包括:1. print函数:Python 2中的print语句被Python 3中的print()函数取代,Python 3中必须使用括号将需要输出的对象括起来。2. 编码格式:Python2中是ASCII编码,需要更改字符集才能正常支持中文。Python3中字符串是Unicode (utf-8)编码,支持中文作为标识符。3. 语法:...

Python3.0和Python2.0

从版本更新上,可以看到Python3.0和Python2.0之间的主要区别在于改进与扩展。在支持中文字符的能力上,Python3.0表现出明显优势,其设计从多方面考虑了中文和其他非ASCII字符的应用。解释器方面的区别,则体现在Python3.0使用了新命名,以避免与先前Python环境产生混淆。然而,Python3.0的这种设计理念在向...

Python3.0正式发布的年份是

1、Python3.0正式发布的年份是2008年。2、Python已经成为最受欢迎的程序设计语言之一。自从2004年以后,python的使用率呈线性增长。Python 2于2000年10月16日发布,稳定版本是Python 2.7。Python 3.0于2008年12月3日发布,不完全兼容Python 2。3、Python是一种跨平台的计算机程序设计语言。是一种面向...

python2.7和3.7的区别 python3和python2 python3转python2 c语言和python区别 python3区别 python2.7 python3性能还低吗 python3.8新特性 python except用法
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
cad里面打完字怎么还原十字架 财务建帐需要什么 建账建账的基本要求 当爱情与亲情需要丢弃一样时,你会选择丢弃哪一方 当爱情和亲情有冲突时你会怎样决择?你会为你所爱的人不顾一切吗? 剑网三 查看余额 因为某些特殊原因不好登陆游戏查看,求其他方式_百度知 ... 右肺上叶中叶结节灶怎么回事 节能门窗有哪些标准 节能门窗有哪些 节能门窗具有哪些特征 焊条式电焊机是谁发明的? 我是工行五星用户,卡内流水30w左右,申请的信用卡大概多少额度 电焊机、电焊条、气体保护焊、氩弧焊、这些都是谁研制发明出来的? python如何查看某一个字符串中字符首先出现3次的方法 python如何根据关键字合并列表或词典中的数值 python如何在两个列表里面选取对应的值。 请问怎样的枕头才是好枕头? 一个python,求大佬请教 工行五星级用户申请的信用卡一般的额度有多少 最近想办张工行的信用卡,我见我的工行网银上显示我是五星客户.那办出来的信用卡额度最低有多少呢? 请问谁会python能帮我编写个简单的程序么,不胜感激,祝您新年愉快大吉大... 一个python文本处理问题(难) 虞师傅不粘锅有毒吗 【Python】请问这段代码什么意思 工行5星级客户信用卡额度是多少? VS2015的python为什么有时候找得到导入的包,有时候又找不到 python怎么对defaultdict中的值进行操作 康宁蓝宝石锅是蓝宝石涂层,这个涂层好吗? oracle 如何动态创建索引 python defaultdict怎么用 什么样的枕头好?如何选枕头 气焊是谁发明的? 新捷达的质量品质怎么样? 焊材与焊业意思的区别? 有什么软件做一个app 还有如何做一个logo 如何获得万网域名证书 &quot;如何打印域名证书? &quot; 域名证书在哪下载 如何获得域名证书? 如何得到英文国际域名证书? 上海哪里有吃烛光晚餐啊?? 上海本帮菜是什么? 隔离霜是什么东东。 如何获得美橙互联域名证书 隔离霜是什么啊 涂完有什么变化吗 上海哪里逛街比较好啊? 落水山庄的设计理念 隔离霜是什么?有什么用处? 隔离霜是什么?有什么作用?要怎么使用? 一般消防报警系统用的是什么线