python2.7与python3的区别_Python 2.7 与Python3的区别
python 2.7
range()函数:
for i in range(10):if i == 2:break
print i
python 3.2
循环中用下面语句代替range(10):
list(range(10))
具体来说,在3.2中,range生成了一个iterator,要转换成list的类型。
print 这个大家都知道了 python3里print变成了函数 要用print('xx')的方式调用
下面说最大的一个变化,str和bytes:
Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。这是件好事。
不管怎样,字符串和字节包之间的界线是必然的,下面的图解非常重要,务请牢记于心:
字符串可以编码成字节包,而字节包可以解码成字符串。
>>>'€20'.encode('utf-8')
b'\xe2\x82\xac20'>>> b'\xe2\x82\xac20'.decode('utf-8')
'€20'
这个问题要这么来看:字符串是文本的抽象表示。字符串由字符组成,字符则是与任何特定二进制表示无关的抽象实体。在操作字符串时,我们生活在幸福的无知之中。我们可以对字符串进行分割和分片,可以拼接和搜索字符串。我们并不关心它们内部是怎么表示的,字符串里的每个字符要用几个字节保存。只有在将字符串编码成字节包(例如,为了在信道上发送它们)或从字节包解码字符串(反向操作)时,我们才会开始关注这点。
传入encode和decode的参数是编码(或codec)。编码是一种用二进制数据表示抽象字符的方式。目前有很多种编码。上面给出的UTF-8是其中一种,下面是另一种:
>>>'€20'.encode('iso-8859-15')
b'\xa420'
>>> b'\xa420'.decode('iso-8859-15')'€20'
编码是这个转换过程中至关重要的一部分。离了编码,bytes对象b'\xa420'只是一堆比特位而已。编码赋予其含义。采用不同的编码,这堆比特位的含义就会大不同:
>>> b'\xa420'.decode('windows-1255')'₪20'
循环对象:
python2.7中是next()方法 python3中是__next__()方法
python2.7与python3的区别_Python 2.7 与Python3的区别相关推荐
- python3新式类_python新式类和旧式类区别
python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类. 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type) ...
- python3 新式类_python新式类和旧式类区别
python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类. 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type) ...
- python中函数和类的区别_Python中函数和方法的区别
简单总结: 与类和实例无绑定关系的function都属于函数(function): 与类和实例有绑定关系的function都属于方法(method). 首先摒弃错误认知:并不是类中的调用都叫方法 函数 ...
- python中的return和print的区别_python中return和print的区别(详细)
Huskiesir python最近正在研究.今天,我面临一个问题,那就是,返回和印刷的区别.双方都能输出结果.的区别是什么?闲话少说,看下面的例子.# Code1: def break_words( ...
- python中的方法和函数的区别_python中函数与方法的区别?
Python中函数不是方法,主要有以下区别: 首先,从分类的角度来分析二者的区别 (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数:自己调用自 ...
- python3 format函数_Python学习教程:Python3之字符串格式化format函数详解(上)
Python学习教程:Python3之字符串格式化format函数详解(上) 概述 在Python3中,字符串格式化操作通过format()方法或者f'string'实现.而相比于老版的字符串格式化方 ...
- python多线程和多进程的区别_python中多线程与多进程的区别
线程的概念: 线程是操作系统中进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程可以有多个线程,每条线程可以同时执行不同的任务.一个 ...
- python中range和xrange的区别_python中range和xrange的区别
range()是Python的内置函数,用于创建整数的列表,可以生成递增或者递减的数列.xrange也有相同的功能, 今天来看下它们之间的不同. range 函数说明:range([start,] s ...
- python中str和int区别_python中eval与int的区别浅析
python中eval和int的区别是什么?下面给大家介绍一下: 1.eval()函数 eval(<字符串>)能够以Python表达式的方式解析并执行字符串,并将返回结果输出.eval() ...
最新文章
- 线性表 ----链表的C语言实现
- java使用链栈实现数制转换
- Linux中查看信息的命令
- 简单是一种美:提高项目成功率的一些方法
- 推荐:两款实用的Jupyter插件~
- 阿里云混合云Apsara Stack 2.0发布,加速政企数智创新
- Leet Code OJ 107. Binary Tree Level Order Traversal II [Difficulty: Easy]
- java 抽象类构造函数_抽象类可以有构造函数吗?
- 十大经典排序算法(下)
- Java之transient关键字
- oracle或mysql分组查询并且获取前3条排序后的数据
- sql转化为int类型
- 2018-2019-1 20189213《Linux内核原理与分析》第五周作业
- PDMS Pipeline Tool 教程(二):通用功能
- php speex转码为mp3,ffmpeg speex转换为mp3或者aac
- 全波傅里叶算法计c语言,全周波傅里叶算法
- 一切皆是映射:浅谈操作系统内核的缺页异常(Page Fault)
- 【人物志】美团技术委员会前端通道主席洪磊:爱折腾的斜杠青年
- 毛姆:人生意义在于体验寻回内心宁静和发现生命无限的过程
- 多条ADSL线路合并叠加效果测试,多WAN口聚合