范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

python2和python3发生了哪些变化

  Python 3 代表 Python 语言进化的一个产物,所以它不会执行大多数针对 Python 2.x 版本 解释器所写的旧代码。但是,这并不意味着你不能识别旧有的代码,或者需要广泛的移植才 能使旧代码工作于 3.x 版本下。事实上,新的语法与过去的语法非常相似。然而,因为 print 语句在新版本中不再存在,所以它很容易破坏旧有的代码。附录将讨论 print 和版本 3.x 的其 他变化,并且将着重强调为了使其更优秀,Python 必须进行的一些改进。最后,我们给出了 一些迁移工具,它们可能有助于你实现这一转变。
  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的变化主要在以下几个方面print 函数
  print语句没有了,取而代之的是print()函数。 Python 2.6与Python 2.7部分地支持这种形式的print语法。在Python 2.6与Python 2.7里面,以下三种形式是等价的:
  print "hello"
  print ("python") #注意print后面有个空格
  print("app") #print()不能带有任何其它参数
  然而,Python 2.6实际已经支持新的print()语法:
  from __future__ import print_function
  print("hello", "python","app", sep=",")Unicode
  目前 Python 用户面对的又一个"陷阱"就是,字符串现在默认为 Unicode 编码。这种变 化不可能很快就来,当处理 Unicode 和通常的 ASCII 字符串时,无数的 Python 开发人员遇到 这种问题已经不止一两天了。这种问题看起来如下所示。
  UnicodeEncodeError: "ascii" codec can"t encode character
  u"xae" in position 0: ordinal not in range(128)
  在 Python 3.x 中这种类型的问题将不再经常发生。关于 Python 中使用 Unicode 的更 多信息,可以查看 Unicode HOWTO 文档(请参阅 C.3 节的 Web 地址)。随着新版本的 Python 采用了这种模型,用户将不再需要使用 Unicode 和 ASCII/非 Unicode 字符串这些 术语。"Python 3.0 中的新内容"(What’s New in Python 3.0)文档相当详细地总结了这种 新模型。 Python 3 使用了文本(text)和(二进制)数据的概念,而非 Unicode 字符串和 8 位字符 串。所有的文本都是 Unicode 编码的。然而,编码的 Unicode 表示成二进制数据。用来保存 文本的类型是 str,而用来保存数据的类型是 bytes。
  python2
  python3
  是否可变
  str("")
  bytes(b"")
  否
  unicode(u"")
  str("")
  否
  N/A
  bytearray
  是
  由于 Python3.X 源码文件默认使用utf-8编码,这就使得以下代码是合法的:
  >>> 中国 = "china"
  >>>print(中国)
  china
  Python 2.x
  >>> str = "我爱北京天安门"
  >>> str
  "xe6x88x91xe7x88xb1xe5x8cx97xe4xbaxacxe5xa4xa9xe5xaex89xe9x97xa8"
  >>> str = u"我爱北京天安门"
  >>> str
  u"u6211u7231u5317u4eacu5929u5b89u95e8"
  Python 3.x
  >>> str = "我爱北京天安门"
  >>> str
  "我爱北京天安门"除法运算
  Python中的除法较其它语言显得非常高端,有套很复杂的规则。Python中的除法有两个运算符,/和//
  首先来说/除法:
  在python 2.x中/除法就跟我们熟悉的大多数语言,比如Java啊C啊差不多,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。
  在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。
  Python 2.x:
  >>> 1 / 2
  0
  >>> 1.0 / 2.0   0.5   Python 3.x:   >>> 1/2   0.5   而对于//除法,这种除法叫做floor除法,会对除法的结果自动进行一个floor操作,在python 2.x和python 3.x中是一致的。   python 2.x:   >>> -1 // 2   -1   python 3.x:   >>> -1 // 2   -1   注意的是并不是舍弃小数部分,而是执行 floor 操作,如果要截取整数部分,那么需要使用 math 模块的 trunc 函数   python 3.x:   >>> import math   >>> math.trunc(1 / 2)   0
  >>> math.trunc(-1 / 2)   0不等运算符   Python 2.x中不等于有两种写法 != 和 <>   Python 3.x中去掉了<>, 只有!=一种写法,还好,我从来没有使用<>的习惯输入的不同   从键盘录入一个字符串   原:   raw_input( "提示信息" )   改为:   input( "提示信息" )   在python2.x中raw_input()和input( ),两个函数都存在,其中区别为:   – raw_input()---将所有输入作为字符串看待,返回字符串类型   – input()-----只能接收"数字"的输入,在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型(int, float )   在python3.x中rawinput()和input( )进行了整合,去除了rawinput(),仅保留了input()函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。模块改名   StringIO模块现在被合并到新的io模组内。 new, md5, gopherlib等模块被删除。   httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib被合并到http包内。 取消了exec语句,只剩下exec()函数。I/O方法XREADLINES(   python2中,文件对象有一个xreadlines()方法,返回一个迭代器,一次读取文件的一行。这在for循环中尤其实用。python3中,xreadlines()方法不再可用。列表推导   不再支持[n for n in a,b]语法,改为[n for n in (a,b)]或[n for n in [a,b]]   `a``=``1``b``=``2``c``=``[n ``for` `n ``in` `[a,b]]``print``(c)`   输出[1,2]更新异常的语法   异常处理 在过去,捕获异常的语法和异常参数/实例有以下形式。 except ValueError, e: 用相同的处理程序捕获多个异常,会使用下面的语法。 except (ValueError, TypeError), e: 所需的圆括号使得一些用户迷惑,因为他们经常尝试编写看起来像下面这样的无效 代码。 except ValueError, TypeError, e: 新的 as 关键字是为了确保你不会因为原始语法中的逗号而混淆;然而,当你试图使用相 同的处理程序捕获一种以上的异常时,仍旧需要圆括号。这里有两个相同功能的新语法例子, 它们展示了这种变化:   except ValueError as e:   except (ValueError, TypeError) as e:   自 Python 2.6 以来,之后发行的 2.x 版本在创建异常处理程序时都开始接受这两种形式, 从而促进了移植过程。可以在 PEP 3110 找到关于该变化的更多信息。 抛出异常 Python 2.x 中抛出异常的最受欢迎的语法如下所示。   raise ValueError, e   需要重点强调的是,你正在创建一种异常的一个实例,Python 3.x 中唯一支持的一种语 法如下所示。 raise ValueError(e) 这个语法其实一点也不新鲜。在超过 10 年前的 Python 1.5(是的,你没有看错)中就引 入了这种语法,当时异常由字符串变化成类,类实例化的语法看起来更像是后者而非前者, 并且我们确信你会同意这一点

30亿年后,银河系与仙女系相撞,那时的人类会在哪里观看呢星系间的碰撞这在宇宙中是常有的事情,天文学家可以通过光学望远镜捕捉到类似的天文现象。星系与星系的碰撞,不是我们想象中的毁灭,而是代表着新生。仙女星系又名仙女座大星云,距离地球254女人婚内出轨,最对不起的人不是你的丈夫,而是这个人昨晚出去吃饭和朋友聊天时,我和朋友闲聊的时候聊到了身边一个女性朋友因为婚内出轨,最后落得众叛亲离的故事。我觉得这个女人的经历很有教育意义,所以我把它写在这里,希望能提醒一些想要出轨男人娶有这样特点的老婆,生活只会越来越顺,别不信中国古代有一句话娶妻当娶贤,嫁夫则嫁能。,这是什么意思?也就是说,当一个男人娶了一个妻子,他应该去找一个好妻子,而不仅仅是看一个女人的外在条件。从某个角度来看,一个女人是否漂亮,她宇宙是一座牢笼?星球是细胞?宇宙远比我们想象中的大!常常看到这种比喻,人类好比人体内的一个细菌或是微生物,宇宙就是人类的牢笼,或者是这样的,我们会不会生活在一个巨人的体内,地球或者是我们都只是细胞而已。是不是呢?你们是不是经常看到这结婚多年之后,睡觉之前这样做,会使你们的感情变得更好如今的生活里,可以说大多数人都过着早出晚归的生活,即使是婚后。除非有孩子,否则女性将选择呆在家里,而男性将继续挣钱。因此,在这个时候相处的最好时间应该是晚上回家睡觉前。因此,如果你漂亮女人出轨的原因究竟是什么?原因令人唏嘘各位好。在古代,有人强调,如果妇女不遵守妇女的道德,她们将受到酷刑。当时,妇女的地位相对低下。随着新社会的不断进步,妇女的地位有了很大的提高。更重要的是,女人是家庭的主人,她们在别女人出轨时,她经常会说这五句话,你听她说过吗?当一个女人出轨时,她经常会说这五句话。你听她说过吗?这里有一个总结,特别是其中的一个。特别令人深思。男人长点心!我今晚有事要做。我不回家吃饭了!在夫妻关系中,女性比男性更注重家庭。自己买车自己开,婆婆挑剔半天,竟然只是为了让我把车给小叔子?小美是家里的小公主。她从小在家就被宠坏了。小美的父母也退休了。小美出生时,她的母亲年纪很大,身体很差。这对老夫妇生下孩子后,他们什么都爱。因此,小美从小就没有任何困难。当她在大学里太空城市太空电梯,在未来,有可能会实现!地球是人类的摇篮,但人类不可能永远被束缚在摇篮里。这是前苏联火箭专家宇宙航行之父康斯坦丁齐奥尔科夫斯基的一句名言,他最先论证了人类可以利用火箭进行星际交通探索太空的可能。太空城市太足疗店上班的女性辞职后会嫁给什么样的男人呢?社会上许多年轻女孩喜欢在足部按摩店工作。首先,他们没有文凭和社会经验。其次,这些店里面的工作很容易。基本上所有的年轻女孩都能胜任。另外,他们没有什么大的开销,所以他们挣了足够的钱,男人用什么伎俩会使妻子更加顺从自己?这几点告知你在夫妻生活中,女人总是最麻烦的。男人总是要接受女人的麻烦。然而,如果这种情况发生得更频繁,男性会觉得女性太难服务,导致夫妻之间的不和谐。事实上,女性之所以这样对待男性,是因为这与男
厉害了我的国!中外空间站对比差异明显,引网友纷纷对中国夸赞对于近年来人类对于外太空的探索始终没有停下脚步,每当夜晚降临的时候,漆黑的天空中总会闪烁着几颗繁星。这时不由得心中就会产生一个疑问在这浩瀚的星空之外,究竟还有什么是我们现在还不知道神十三将在4月返回,空间站又回到无人状态,再遇卫星靠近怎么办北京时间2月15号,元宵晚会上面,王亚平用一曲古筝弹奏的茉莉花,为大家送上祝福。而今天是17号,正是神舟十三号乘组去到中国空间站4个月的日子。按照前几天发布会的说法,在4月中旬,神全球首次揭秘!马里亚纳海沟等6条深渊沉积黑碳,解决陆地来源和海洋自生争论地球最深处的深海黑碳埋藏量多大?大洋黑碳是来自陆地还是海洋自生?著名的自然杂志旗下新期刊通讯地球与环境(CommunicationsEarthEnvironment)日前在线刊登了红旗在火星上迎风飘扬,祝融号视频新彩蛋,避障相机抓拍到位当祝融火星探测器到达火星表面时,使用四个鱼眼避障相机记录出发过程的周围图像。视频中着陆平台的细节透露了隐藏已久的彩蛋国旗在火星上迎风飘扬当前位置国旗在火星风中飘扬。着陆平台的锁定机半个月发射3艘飞船,国际空间站进入繁忙期,哪里要退役了?2月15日,1枚联盟2。1a型运载火箭将进步MS19货运飞船送入太空,开启了2022年国际空间站活动的序幕。据说进步MS19货运飞船将在轨停留370天,超越进步MS14飞船在轨时长生命起源的7个理论地球上生命的起源始于30亿多年前,随着时间的推移,从最基本的微生物演变成令人眼花缭乱的复杂结构。但是,宇宙中唯一已知的生命家园上的第一批生物是如何来的呢?关于生命的确切起源,也称为什么是自然界的蝴蝶效应呢?18世纪的法国天文学家数学家和物理学家拉普拉斯曾经说过。如果有一位天才知道宇宙间所有事物的全部关系,他就一定能说出这些事物的过去和将来他相信,自然界万事万物的变化发展都是可预测的。宇宙质量总和为什么会是零?看完科学家的解释明白了人类走出地球探索宇宙已经有几十年,我们择宇宙的认识也越来越多,而人类之所以能够发展如此之快,只用了短短数百年的时间就完成了科技大发展,让人类走出地球,这其中离不开那些伟大科学家的奋科学家发现罕见恒星,可能由白矮星合并产生?恒星作为宇宙中最为重要的天体,也是宇宙光和热的主要来源。宇宙中的恒星,都依靠核聚变产生光和热,一颗年轻的恒星,必然会富含氢元素和氦元素,通过氢氦核聚变向外界传播光和热,恒星表面也会流浪太空300多天,回来却发现自己的家没了1991年12月,庞大的苏联宣布解体了,这样一个在世界上雄霸多年的大国一夜之间分解为十几个国家。正当地球上混乱异常的时候,天上太空站里却还留着一个苏联人,克里卡廖夫。苏联在1987海外动态人类最大太空望远镜韦伯传回首组恒星照片与自拍新催化剂将CO2转化汽油效率提高千倍美国研究人员近日发表在美国国家科学院院刊上的最新论文中描述了他们发明的一种新催化剂,可通过增加化学反应中长链碳氢化合物的产量来将CO2转化为其他