学python2.7简单还是python3.0简单,两者区别
学python2.7简单还是python3.0简单,谈谈两者区别
1. 使用__future__模块
Python 3.X 引入了一些与Python 2 不兼容的关键字和特性。在Python 2中,可以通过内置的__future__模块导入这些新内容。如果你希望在Python 2中写的代码也可以在Python 3.X中运行,那么建议使用__fufure__模块。
2. print 函数
虽然print语法是Python 3中一个很小的改动,但是依然值得提一下:Python 2中的print 语句被Python 3中的 print()函数取代,这意味着在Python 3中必须用括号将需要输出的对象括起来。在Python 2中使用额外的括号也可以,但是如果要在Python 3中以Python 2 的形式不带括号调用 print 函数,就会触发SyntaxError(语法错误)。
3. 整数除法
由于人们常常会忽视Python 3 在整,数除法上的改动(写错了也不会触发SyntaxError),因此在移植代码或在Python 2 中执行Python 3 的代码时需4要特别注意这个改动。
4. Unicode
Python 2 有基于ASCII 的 str()类型,可通过单独的 unicode()的函数转成 unicode类型,但没有byte 类型。在Python 3 中有了Unicode(UTF-8)
字符串和两个字节类(bytes和bytearrays)。
5. xrange
在Python 2.x中,经常会用xrang()创建一个可迭代对象,通常出现在“for”循环或“列表/集合/字典推导式”中。(在Python 3 中使用 xrang()会触。NameError)。
6. 触发异常
Python 2 支持新旧两种异常触发语法,而Python 3 只支持带括号的语法(不然会触发SyntaxError)。
7. 处理异常
Python 3中的异常处理发生了一点变化。在Python 3中必须使用as 关键字,Python 2 中不需要。
8. next()函数和.net()方法
由于会经常用到next() (.next())函数(方法),因此要提到另一个语法改动(实现方面也做了改动):在Python 2中,函数形式和方法形式都可以使用;在Python 3中 ,只能使用next()函数(试图调用.next()方法会触发AttributeError) 。
9. for循环变量与全局命名空间泄露
在Python 3中,for循环中的变量不再会泄露到全局命名空间中了。
10. 比较无序类型
Python 3 中另一个优秀的改动是,如果我们试图比较无序类型,就会触发一个TypeError。
11. 使用 input()解析输入内容
Python 3 改进了input()函数,这样该函数就会总是将用户的输入存储为 str对象。在Python 2 中,为了避免读取非字符串类型会发生的一些危险行为,不得不使用 raw_input()代替input()。
12. 返回可迭代对象,而不是列表
某些函数和方法在Python 3 中返回的是可迭代对象,而不像在Python 2 中返回列表。对象只遍历一次会节省很多内存,如果通过生成器多次迭代这些对象,效率就不高了。此时如果需要列表对象,可以通过Python 3的list()函数简单地将可迭代对象转成列表。
转载(http://www.96net.com.cn/)
学python2.7简单还是python3.0简单,两者区别的更多相关文章
- Python与C的简单比较(Python3.0)
Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言.本萌新也刚开 ...
- python2.x版本与python3.x版本的区别以及运算符
python2.x中: 重复代码,语言不统一,不支持中文 py2中除法获取的都是整形 py2中有long(长整形) print 可以加括号也可以不加括号 range 在py2中打印的结果是列表 py2 ...
- 相比于python2.6,python3.0的新特性。
这篇文章主要介绍了相比于python2.6,python3.0的新特性.更详细的介绍请参见python3.0的文档. Common Stumbling Blocks 本段简单的列出容易使人出错的变动. ...
- 零元学Expression Blend 4 - Chapter 47 超简单!运用StackPanel配合OpacityMask做出倒影效果
原文:零元学Expression Blend 4 - Chapter 47 超简单!运用StackPanel配合OpacityMask做出倒影效果 有网友问我如何在Blend内制作出倒影效果 我提供了 ...
- Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1Python 3_x 新特性1python3.4新特性1python3.5新特性1值得关注的新特性1Pyth
Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1 Python 3_x 新特性1 python3.4新特性1 python3.5新特性1 值得关注的新特性1 ...
- struts2.0简单教程
Struts2.0简单配置教程: 在Eclipse中配置Struts2 步骤一:首先打开java ee并建立一个动态网站项目,我建立的项目名为TestDemo,如下图: 建立之后可在左侧发现工程,展开 ...
- HTTP/2.0 简单总结(转载)
HTTP/2.0 简单总结(转载于https://linjunzhu.github.io/blog/2016/03/10/http2-zongjie/) 如何使用上 HTTP/2.0 需要浏览器的支持 ...
- moloch1.8.0简单操作手册
moloch1.8.0简单操作手册 Sessions 页面:Sessions主要通过非常简单的查询语言来构建表达式追溯数据流量,以便分析. SPIView 页面: SPIGraph页面:SPIGrap ...
- Spark学习笔记0——简单了解和技术架构
目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...
随机推荐
- Winfrom中数据的双向绑定(使用INotifyPropertyChanged)
在WPF中新建项目是自动实现了INotifyPropertyChanged接口,用于数据绑定时非常的方便在winfrom中也可以实现INotifyPropertyChanged接口 将需要绑定的字段写 ...
- Qt Creator 不能输入中文怎么解决?
Qt Creator 2.7.2不能输入中文怎么解决?之前提的问题自己后来找到解决方法后就忘了, 方法很简单,只要设置一下环境变量就行了export QT_IM_MODULE=ibus qt5.4.r ...
- SPOJ - DQUERY (主席树求区间不同数的个数)
题目链接:https://vjudge.net/problem/SPOJ-DQUERY 题目大意:给定一个含有n个数的序列,有q个询问,每次询问区间[l,r]中不同数的个数. 解题思路:从左向右一个一 ...
- Spring的事物原理
在Spring中把非功能性的事物管理代码以切面的形式进行管理,只需要声明事物即可启用事物管理. 本质:最终执行的还是java.sql.Connection的setAutoCommit(),commit ...
- 修改Win7登陆界面墙纸
修改Win7登陆界面墙纸 修改注册表.reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W ...
- 如何搭建一个spring boot项目
什么是springboot? Spring Boot俗称微服务.Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特 ...
- bootstrap 的布局
第一步:你要做的就是选择适合你显示器的标签: .col-xs- 超小屏幕 手机 (<768px) .col-sm- 小屏幕 平板 (≥768px) .col-md- 中等屏幕 桌面显示器 (≥9 ...
- Codeforces 892E Envy
问题描述 小Q正在玩一个叠塔的游戏,游戏的目标是叠出尽可能高的塔.在游戏中,一共有n张矩形卡片,其中第i张卡片的 长度为a_i,宽度为b_i.小Q需要把所有卡片按一定顺序叠成一座塔,要求对于任意一个矩 ...
- 笔记-CSS-e:nth-chid
1,CSS 2,
- springboot2整合logback.xml动态修改日志打印级别
今天找bug烦到了,生产上的日志级别不能修改,非常不利于排查问题,于是想到了动态修改日志打印级别, 因为上一周把项目升级成springboot2,并且使用logback.xml管理日志打印,所以修改也 ...