黑马程序员视频库

播妞微信号:boniu236

传智播客旗下互联网资讯、学习资源免费分享平台

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_functionprint("hello", "python","app", sep=',')

Unicode

目前 Python 用户面对的又一个“陷阱”就是,字符串现在默认为 Unicode 编码。这种变 化不可能很快就来,当处理 Unicode 和通常的 ASCII 字符串时,无数的 Python 开发人员遇到 这种问题已经不止一两天了。这种问题看起来如下所示:UnicodeEncodeError: 'ascii' codec can't encode characteru'®' 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(中国)chinaPython 2.x>>> str = "我爱北京天安门">>> str'\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8'>>> str = u"我爱北京天安门">>> stru'\u6211\u7231\u5317\u4eac\u5929\u5b89\u95e8'Python 3.x>>> str = "我爱北京天安门">>> str'我爱北京天安门'

除法运算

Python中的除法较其它语言显得非常高端,有套很复杂的规则。Python中的除法有两个运算符,/和//。首先来说/除法:在python 2.x中/除法就跟我们熟悉的大多数语言,比如Java啊C啊差不多,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。Python 2.x:>>> 1 / 20>>> 1.0 / 2.00.5Python 3.x:>>> 1/20.5而对于//除法,这种除法叫做floor除法,会对除法的结果自动进行一个floor操作,在python 2.x和python 3.x中是一致的。python 2.x:>>> -1 // 2-1python 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(是的,你没有看错)中就引 入了这种语法,当时异常由字符串变化成类,类实例化的语法看起来更像是后者而非前者, 并且我们确信你会同意这一点。推荐阅读:

最新计算机技能需求排名出炉:Python仅排第三,第一你猜得到吗?

华为发放20亿奖金,人均10万!你还想逃离996吗?

别找了,中高级程序员都在学这个!

我就知道你会“在看”▼点击 抢基础班免费名额

显示2位小数 python3_自动化常用语言python,版本3和2有何变化?相关推荐

  1. 负数显示红字html语言,需要将单元格内的负数显示为红色且不带负号显示两位小数的格式代码是下面哪一种A、 0.00;[红色...

    需要将单元格内的负数显示为红色且不带负号显示两位小数的格式代码是下面哪一种A. 0.00;[红色 更多相关问题 SPEC性能测试能比时钟频率更全面地反映计算机处理器.存储结构和编译器的性能.它有两种表 ...

  2. element-ui表格列金额显示两位小数

    对于金额的显示,大多情况下需要保留两位小数,比如下面的(表格采用 element-ui): 在vue.js中,对文本的处理通常是通过设置一系列的过滤器,过滤器可以用在两个地方:双花括号插值 和 v-b ...

  3. js小数运算出现多为小数问题_js小数计算小数点后显示多位小数的实现方法

    首先写一个demo 重现问题,我使用的是一个js在线测试环境[打开] 改写displaynum()函数 function displaynum(){var num = 22.77;alert(num ...

  4. vb只显示两位小数_【名师课堂】苏教数学五年级上3.1小数的意义

    微课视频第一课时 微课视频第二课时 电子课本 同步练习 参考答案 教学设计 小数的意义和读.写方法教材第30~32页的内容.1.使学生理解小数的意义.2.结合具体情境教学小数的意义,让学生初步认识小数 ...

  5. cvi中c语言只保留两位小数,保留两位小数,但要求只显示一位小数,怎么实现?...

    1.要实现的效果:在相同的时间内完成设定数值的自加: 2.目前的方案:( 设定数值 - 初始数值 )/ 预期时长 = speed,以speed为自加变量: 3.目前的困境:speed精确到小数好几位, ...

  6. C语言编程答案保留三位小数,如何用c语言求倒数,保留3位有效数字

    名称定义 所谓有效数字:具体地说,是指在分析工作中实际能够测量到的数字.所谓能够测量到的是包括最后一位估计的,不确定的数字. 我们把通过直读获得的准确数字叫做可靠数字;把通过估读得到的那部分数字叫做存 ...

  7. 显示2位小数 python3_Python2和Python3的区别

    python Python2和Python3分别是Python的两个版本,按照Python官方的计划,Python2只支持到2020年.为了不带入过多的累赘,Python3在设计的时候没有考虑向下相容 ...

  8. 显示2位小数 python3_python3+ 和 Python2+的一些区别

    一.性能 Python3.0速度比Python2.0慢一些 二.编码 Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的: >>中国 ='china'>>pri ...

  9. C#控制textbox中的输入数字固定显示2位小数

     this.txtInput.Text = string.Format("{0:#,##0.00}", Convert.ToDouble(input));

最新文章

  1. html 逗号用什么替换,字符串用javascript数组中的逗号替换“↵”
  2. 手工测试对比自动化测试
  3. Unity3D绑定button监听事件
  4. ActiveMQ 消息持久化
  5. Java 集合时间复杂度
  6. Linux 设备驱动开发 —— Tasklets 机制浅析
  7. python中接口测试垃圾数据如何清理_巧用PyUnit中unittest特性解决接口测试产生脏数据问题...
  8. mysql的缓存机制是什么意思_MySQL缓存机制详解
  9. vue ---- 工程化概念、webpack概念、webpack的安装配置,以及简单使用
  10. 那个马斯克的小迷弟开始讲深度学习了,课程视频+PPT已放出
  11. jquery自定义动画animate方法
  12. 关于opacity、visibility、display属性的一道CSS面试题
  13. SpringCloud之Hystrix断路器以及dashboard 属性详解
  14. ul1581标准_UL 1581电线电缆燃烧试验
  15. ES6阮一峰读书笔记第三章字符串的拓展
  16. 【Pycharm】安装及激活、界面调整、导入anaconda的依赖库、字体设置微软雅黑
  17. 省市县行政区划代码sql及源地址
  18. 一篇走心的文章和一个不起眼的引流方法
  19. ansible 远程Windows主机
  20. IE加载ocx时提示控件不安全的解决方法

热门文章

  1. 整合了一下网上的内容,excel工作簿全部公式转换为值
  2. 你不知道的《阿里巴巴Java开发手册》背后故事
  3. MyBatis学习总结(23)——Mybatis打印Sql语句配置
  4. Java基础学习总结(101)——Junit5抢鲜看
  5. git 创建webpack项目_从 0 开始构建 webpack 项目【Webpack Book 翻译】
  6. 【Java】深入理解Java虚拟机的读书笔记
  7. Java设计模式之单例模式(七种写法)
  8. 计算本周是几号到几号
  9. Python爬虫之:下载软件包
  10. sem_wait sem_post信号量操作进本函数