当前位置: 首页 > news >正文

Python2与Python3的区别

主要差异

虽然 Python 2.7 和Python 3 有许多类似的功能,但它们不应该被认为是完全可互换的。虽然你可以在任一版本中编写出优秀的代码和有用的程序,但是值得了解的是,在代码语法和处理方面两者会有一些相当大的差异。

下面是一些例子,而且你应该记住,当你深入学习 Python 时,你可能会遇到更多的语法差异。

Print

在 Python 2 中, print 被视为一个语句而不是一个函数,这是一个典型的容易弄混的地方,因为在 Python 中的许多操作都需要括号内的参数来执行。如果在 Python 2 中你想要你的控制台输出 ”Sammy the Shark is my favorite sea creature”,你应该写下这样的 print 语句:

print "Sammy the Shark is my favorite sea creature"

在使用 Python 3 时,print()会被显式地视为一个函数,因此要输出上面相同的字符串,你可以使用这种非常简单且易于使用的函数语法:

print("Sammy the Shark is my favorite sea creature")

这种改变使得 Python 的语法更加一致,并且在不同的 print 函数之间进行切换更加容易。就方便性而言,print()语法也与 Python 2.7 向后兼容,因此您的 Python 3 print()函数可以在任一版本中运行。

整数的除法

在 Python 2 中,您键入的任何不带小数的数字,将被视为整数的编程类型。虽然乍看起来这似乎是一个简单的处理编程类型的方法,但有时候当你试图除以整数以期望获得一个带小数位的答案(称为浮点数),如:

5 / 2 = 2.5

然而,在 Python 2 中,整数是强类型的,并且不会变成带小数位的浮点数,即使这样做具有直观上的意义。

当除法/符号的任一侧的两个数字是整数时,Python 2进行底除法,使得对于商x,返回的数字是小于或等于x的最大整数。这意味着当你写下 5 / 2 来对这两个数字相除时,Python 2.7 将返回最大的小于或等于 2.5 的整数,在这种情形下:

Output
2

为解决这个问题,你可以在 5.0 / 2.0 中添加小数位,以得到预期的答案 2.5。

在 Python 3 中,整数除法变得更直观,如

你也可以使用 5.0 / 2.0 返回 2.5,但是如果你想做底层划分,你应该使用 “//” 这样的 Python 3 语法,像这样:

b = 5 // 2
print(b)
Output
2

在 Python 3 中的这种修改使得整数除法更为直观,并且它的特点是不能向后兼容 Python 2.7。

 

PS:以上内容摘自http://python.jobbole.com/87372/,仅供学习参考使用,若有侵权,请联系博主删除,谢谢

转载于:https://www.cnblogs.com/SIQHL/p/8796701.html

相关文章:

  • 集群中用Memcached来实现session共享
  • AngularJs的表单验证
  • 如何查看linux中的ssh端口开启状态
  • Go 语言之 struct 结构体
  • 安卓设置背景图平铺,同时设置背景色
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 为用户管理连接 Confluence 6 到 Jira 应用程序
  • 加密算法:DigestUtils与java MessageDigest
  • Spring Extensible XML
  • mooc-IDEA alter enter--008
  • 20172318 2017-2018-2 《程序设计与数据结构》第6周学习总结
  • 坚持不走寻常路 解读“锐捷式”创新的三个突破
  • Java基础-正则表达式(Regular Expression)语法规则简介
  • 你不知道的js坑
  • 关于肥胖和美国为什么那么多胖子
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Android 架构优化~MVP 架构改造
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • java取消线程实例
  • JS+CSS实现数字滚动
  • mysql常用命令汇总
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Node + FFmpeg 实现Canvas动画导出视频
  • rabbitmq延迟消息示例
  • React系列之 Redux 架构模式
  • 阿里云前端周刊 - 第 26 期
  • 分享几个不错的工具
  • 工程优化暨babel升级小记
  • 嵌入式文件系统
  • 强力优化Rancher k8s中国区的使用体验
  • 小李飞刀:SQL题目刷起来!
  • 学习HTTP相关知识笔记
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • (C)一些题4
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (算法)求1到1亿间的质数或素数
  • (一)SpringBoot3---尚硅谷总结
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • .cfg\.dat\.mak(持续补充)
  • .cn根服务器被攻击之后
  • .net framework4与其client profile版本的区别
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @selector(..)警告提示
  • [20170713] 无法访问SQL Server
  • [ajaxupload] - 上传文件同时附件参数值
  • [Android Studio] 开发Java 程序
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [C#7] 1.Tuples(元组)