Python 3.x不兼容Python 2.x,但这两个系列在语法层面的差别不大,Python 3.x移除了部分混淆的表达方式,在语句输出、编码、运算和异常等方面做出了一些调整,但大体语法与Python 2.x相似,Python 3.x的使用者可以轻松阅读Python 2.x编写的代码。

1. print函数替代了print语句

​ 在Python 2.x中,输出数据使用的是print语句。但是在Python 3.x中, print语句没有了,取而代之的是print()函数,示例代码如下:

Python 2.x

>>> print(3,4)

(3, 4)

Python 3.x

>>> print(3,4)

3 4

2. Python 3.x默认使用UTF-8编码

Python 2.x中有ASCII Str()类型,unicode()是单独的,不是byte类型。在Python 3.x版本的源代码中,默认使用的是UTF-8编码,从而可以很好地支持中文或其它非英文字符。例如,输出一句中文,Python 2.x和Python 3.x的结果如下所示:

Python 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'

Python 3.x

>>> str = "我爱北京天安门"

>>> str

'我爱北京天安门'

3.除法运算

和其他语言相比,Python语言的除法非常高端,它的除法运算包含两个运算符,分别是/和//,这两个运算符在Python 2.x和Python 3.x的使用如下所示:

● 运算符 /

在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操作,即对小数部分进行四舍五入操作。

4.异常

在Python 3.x版本中,异常处理改变的地方主要如下:

● 在Python 2.x版本,所有类型的对象都是直接被抛出的,但是在Python 3.x版本中,只有继承自BaseException的对象才可以被抛出。

● 在Python 2.x中,捕获异常的语法是“except exc, var”。在Python 3.x版本中,引入了as关键字,捕获异常的语法变更为“except exc as var”。

● 在Python 2.x版本中,处理异常使用“raise Exception(args)”;在Python 3.x版本中,处理异常使用“raiseException, args”。

● Python 3.x取消了异常类的序列行为和.message属性。

关于Python 2.x和Python 3.x处理异常的示例代码如下所示:

python2.x

>>> try:

... raise TypeError,"类型错误"

... except TypeError,err:

... print err.message

...

类型错误

python3.x

>>> try:

... raise TypeError,"类型错误"

... except TypeError as err:

... print(err)

...

类型错误

5.八进制字面量表示

在Python 3.x中,表示八进制字面量的方式只有一种,并且必须写成“0o1000”这样的方式,原来“01000”的方式不能使用了,示例代码如下:

Python 2.x

>>> 0o1000

512

>>> 01000

512

Python 3.x

>>> 01000

File "", line 1

01000

^

SyntaxError: invalid token

>>> 0o1000

512

6.不等运算符

Python 2.x的不等于运算符有两种写法:!= 和 <>,但是,Python 3.x中去掉了<>, 只有!=一种写法。示例代码如下:

Python 2.x

>>> 1!=2

True

>>> 1<>2

True

Python 3.x

>>> 1!=2

True

>>> 1<>2

File "", line 1

1<>2

^

SyntaxError: invalid syntax

>>>

7.数据类型

Python中数据类型的改变如下:

(1)Python 3.x去除了long类型,现在只有一种整型int,但它的行为就像是Python 2.x版本的long。

(2)Python 2.x新增了bytes类型,对应于Python 2.x版本的八位串,定义一个bytes字面量的方法如下所示:

>>> b = b'china'

>>> type(b)

字符串对象和bytes对象可以使用.encode() (str -> bytes) 或者 .decode() (bytes -> str)方法相互转化,示例代码如下:

>>> s = b.decode()

>>> s

'china'

>>> b1 = s.encode()

>>> b1

b'china'

(3)Python 3.x中,字典的keys()、items()和values()方法用返回视图代替了列表,而2.x中的iterkeys()等函数都被废弃。同时去掉的还有has_key()方法,用in替代。

猜你喜欢

python用代码表示5与2的整除_Python教程5:Python 2.x和Python 3.x的区别有哪些?相关推荐

  1. java 去掉最后一个换行符_Python 教程(一)第一个Python程序

    本教程的目标是让您开始学习Python编程语言.Python是一门值得学习的伟大语言.对于那些刚开始编程的人来说,它是一种理想的语言.读完本教程,你将有信心继续自己的学习.您可以用Python创建脚本 ...

  2. python selenium 怎么查找modal悬浮窗的内容_python教程:五分钟从pubmed down几万篇文献...

    小编有话说:hello guys!昨天推送的stata做图教程您学会了吗?有任何疑问欢迎后台咨询我们热心的罗仔.今天换个口味,学学python自动化. 作为科研小达人,不学一些旁门左道傍身怎么行! 今 ...

  3. python变量命名规则_Python教程第9篇:牢记Python变量命名5大规则

    上一节课我们通过几行代码来理解Python变量,不知道你都动手操作了吗?Python变量名不是随便乱起的哈,需要遵循以下规则:1.  只能字母.下划线开头,不能数字开头.变量用小写字母开头是 Pyth ...

  4. python编写代码实现10以内的偶数之和_python 求1-100之间的奇数或者偶数之和的实例...

    python 求1-100之间的奇数或者偶数之和的实例 更新时间:2019年06月11日 10:03:20 作者:三尺秋水一点飞鸿 今天小编就为大家分享一篇python 求1-100之间的奇数或者偶数 ...

  5. python代码缩进是一种语法吗_Python 为啥用缩进语法,听听Python之父的说的啥

    Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 "end" 之类的语法? Python 的缩进是一个老生常谈的话题,经常有人提及它,比如Python ...

  6. python俄罗斯方块代码34行_少儿编程分享:码趣君教你用Python编写俄罗斯方块(四)...

    接下来要进入操作部分了 坚持才能获得最后的成就感噢 用移动变量处理用户输入 216. elif (event.key == K_LEFT or event.key == K_a): 217. movi ...

  7. python发牌代码十点半_深夜十点半(一)——我的第一个Python程序“登录系统”...

    系统设计要求: (1)可以输入用户名和密码 (2)密码要密文显示 (3)输错三次要锁定对应的用户 首先,我们来完成要求1,设计一个可以输入用户名和密码的界面,输入正确或错误进行提示. _usernam ...

  8. python游戏代码运行不了_无法使我的tic tac toe游戏在python中正确运行

    转不到"玩家1"的原因是你的支票中缺少一个空格.你也没有正确地检查一个玩家何时获胜,这就是为什么你会有这种奇怪的行为.你需要检查每个位置,而不仅仅是最后一个.我还添加了对用户输入的 ...

  9. python如何分别控制2个相同的窗口_Python入门到精通(2):使用Python计算数学算式...

    IDLE是Python的集成开发环境,IDLE包含在Python安装包中,Python安装完成后,IDLE就自动安装好了. 1.启动IDLE 启动IDLE开发工具主要有两种方法:第一种方法是在小娜搜索 ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第9期)
  2. 64位win10系统无法安装.Net framework3.5的解决方法
  3. 根据12和24小时制选择不同的时间显示
  4. activexobject对象不能创建_【设计模式】建造者模式:你创建对象的方式有它丝滑吗?...
  5. 什么是SAP Graph
  6. HTTPS原理和对中间件攻击的预防
  7. 口腔取模过程及注意事项_康贝齿科首家引进LAUNCA数字化口腔扫描,走进口腔数字化诊疗时代!...
  8. Spring Boot笔记-@ComponentScan初步解析
  9. 数据层(DAL)自动生成库
  10. 【渝粤题库】广东开放大学mysql数据库及应用 形成性考核 - 副本 (5)
  11. 利用composer搭建PHP框架(五.自动加载)
  12. REDIS学习总结(一)单机集群搭建
  13. 融云即时通讯SDK集成 – 国内厂商推送集成踩坑篇(Android平台)
  14. cad卸载_解决CAD小白入门的第一个难题,三招任你选
  15. 7-28 猴子选大王 (20分)
  16. word2010怎样显示分节符?
  17. Docsify+github/gitee搭建个人博客
  18. 林志福林玉使林树勋林宝敏林士焜,玉树传芳远,心正永德长;天经地义重,图书翰墨香
  19. Google Play In-app Billing API version is less than 3.
  20. 移动端APP测试总结(二)

热门文章

  1. python随机生成模块的应用
  2. 计算机图形学基础考试题,计算机图形学基础复习题
  3. 计算机应用基础 实验指导,计算机应用基础实验指导EXCEL
  4. wireshark 如何修改抓包时间日期显示格式?
  5. 如何在jupyter notebook中运行markdown文件(脚本、代码)
  6. 【数字图像处理】图像内插“双线性内插法 Bilinear interpolation”代码演示(以像素中心点确定像素位置)(图像放大缩小)具有低通滤波性质,使高频分量受损,图像轮廓可能会有一点模糊
  7. pycharm 调试程序时如何监控、监视变量?
  8. Intel Realsense D435 当摄像头运行过程中突然USB线断开,对RuntimeError: Frame didn't arrived within 5000的异常捕获及处理
  9. USB hub(221)
  10. Intel Realsense D435 摄像头插入电脑无法监测(识别)的可能原因及解决方案 USB SCP overflow