学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简单,两者区别的更多相关文章

  1. Python与C的简单比较(Python3.0)

    Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言.本萌新也刚开 ...

  2. python2.x版本与python3.x版本的区别以及运算符

    python2.x中: 重复代码,语言不统一,不支持中文 py2中除法获取的都是整形 py2中有long(长整形) print 可以加括号也可以不加括号 range 在py2中打印的结果是列表 py2 ...

  3. 相比于python2.6,python3.0的新特性。

    这篇文章主要介绍了相比于python2.6,python3.0的新特性.更详细的介绍请参见python3.0的文档. Common Stumbling Blocks 本段简单的列出容易使人出错的变动. ...

  4. 零元学Expression Blend 4 - Chapter 47 超简单!运用StackPanel配合OpacityMask做出倒影效果

    原文:零元学Expression Blend 4 - Chapter 47 超简单!运用StackPanel配合OpacityMask做出倒影效果 有网友问我如何在Blend内制作出倒影效果 我提供了 ...

  5. 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 ...

  6. struts2.0简单教程

    Struts2.0简单配置教程: 在Eclipse中配置Struts2 步骤一:首先打开java ee并建立一个动态网站项目,我建立的项目名为TestDemo,如下图: 建立之后可在左侧发现工程,展开 ...

  7. HTTP/2.0 简单总结(转载)

    HTTP/2.0 简单总结(转载于https://linjunzhu.github.io/blog/2016/03/10/http2-zongjie/) 如何使用上 HTTP/2.0 需要浏览器的支持 ...

  8. moloch1.8.0简单操作手册

    moloch1.8.0简单操作手册 Sessions 页面:Sessions主要通过非常简单的查询语言来构建表达式追溯数据流量,以便分析. SPIView 页面: SPIGraph页面:SPIGrap ...

  9. Spark学习笔记0——简单了解和技术架构

    目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...

随机推荐

  1. Python基础入门一文通 | Python2 与Python3及VSCode下载和安装、PyCharm激活与安装、Python在线IDE、Python视频教程

    目录 1. 关键词 2. 推荐阅读 2.1. 视频教程 3. 本文按 4. 安装 4.1. 视频教程 4.2. 资源下载 4.3. 安装教程 1. 关键词 Python2 与Python3及VSCod ...

  2. .net 项目中应用Web Services(vs2012)

    一.在asp.net项目中添加Web services1.新建一个asp.net项目(目前尚未验证是否可以在MVC项目中添加)2.在项目名上右击,选择添加→新建项→Web服务,输好名称后确定即可 二. ...

  3. Tomcat支持SSL加密网站

    配置Tomcat,以支持SSL对网站加密,关键性配置如下: 思路:在tomcat服务器web1上做相应配置->客户端测试. 1.创建加密用的私钥和证书文件 [root@web1 ~]# keyt ...

  4. Codeforces 图论题板刷(2000~2400)

    前言 首先先刷完这些在说 题单 25C Roads in Berland 25D Roads not only in Berland 9E Interestring graph and Apples ...

  5. [python 学习] random

    1.random() 生成一个随机浮点数 import random # x 属于 [0,1) x = random.random() print x 2.uniform() 生成制定范围内的随机浮点 ...

  6. JS基础入门篇( 三 )—使用JS获取页面中某个元素的4种方法以及之间的差别( 一 )

    1.使用JS获取页面中某个元素的4种方法 1.通过id名获取元素 document.getElementById("id名"); 2.通过class名获取元素 document.g ...

  7. 网络安全专家教你设置史上最安全的WiFi密码

    通过设置强密码可以防止WiFi被蹭网现象的发生,保证WiFi网络安全.那么我们的WiFi密码怎么设置才最安全呢? 提供以下设置建议: 1.WiFi密码设置尽量使用字母.数字和字符组成的密码.这种密码强 ...

  8. GC、进程和线程的定义

    GC是什么,为什么要有GC GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃.Java提供的GC ...

  9. TCP: time wait bucket table overflow

    .TCP: time wait bucket table overflow tcp的连接数超出了服务器设置的连接数 1 2 3 4 5 6 [root@test log]# netstat -antp ...

  10. redis集群报错:(error) CLUSTERDOWN The cluster is down

    更换了电脑,把原来的电脑上的虚拟机复制到了新电脑上,启动虚拟机上的centos系统,然后启动redis集群(redis5版本),发现集群可以启动,redis进程也有,但是连接集群中的任意节点就报错,如 ...