python 2.4 与 python 3.0 的比较
一、 print 从语句变为函数
原: print 1, 2+3
改为: print ( 1, 2+3 )
二、range 与 xrange
原 : range( 0, 4 ) 结果 是 列表 [0,1,2,3 ]
改为:list( range(0,4) )
原 : xrange( 0, 4 ) 适用于 for 循环的变量控制
改为:range(0,4)
三、字符串
原: 字符串以 8-bit 字符串存储
改为: 字符串以 16-bit Unicode 字符串存储
四、try except 语句的变化
原: try:
......
except Exception, e :
......
改为
try:
......
except Exception as e :
......
五、打开文件
原: file( ..... )
或 open(.....)
改为:
只能用 open(.....)
六、从键盘录入一个字符串
原: raw_input( "提示信息" )
改为: input( "提示信息" )
七、bytes 数据类型
A bytes object is an immutable array. The items are 8-bit bytes, represented by integers in the range 0 <= x < 256.
bytes 可以看成是“字节数组”对象,每个元素是 8-bit 的字节,取值范围 0~255。
由于在 python 3.0中字符串以 unicode 编码存储,当写入二进制文件时,字符串无法直接写入(或读取),必须以某种方式的编码为字节序列后,方可写入。
(一)字符串编码(encode) 为 bytes
例: s = "张三abc12"
b = s.encode( 编码方式)
# b 就是 bytes 类型的数据
# 常用的编码方式为 : "uft-16" , "utf-8", "gbk", "gb2312", "ascii" , "latin1" 等
# 注 : 当字符串不能编码为指定的“编码方式”时,会引发异常
(二) bytes 解码(decode)为字符串
s = "张三abc12"
b = s.encode( "gbk") # 字符串 s 编码为 gbk 格式的字节序列
s1 = b.decode("gbk") # 将字节序列 b以gbk格式 解码为字符串
# 说明,当字节序列不能以指定的编码格式解码时会引发异常
(三)使用方法举例
#coding=gbk
f = open("c:\\1234.txt", "wb")
s = "张三李四abcd1234"
# -------------------------------
# 在 python2.4 中我们可以这样写:
# f.write( s )
# 但在 python 3.0中会引发异常
# -------------------------------
b = s.encode("gbk")
f.write( b )
f.close()
input("?")
读取该文件的例子:
#coding=gbk
f = open("c:\\1234.txt", "rb")
f.seek(0,2) #定位至文件尾
n = f.tell() #读取文件的字节数
f.seek(0,0) #重新定位至文件开始处
b = f.read( n )
# ------------------------------
# 在 python 2.4 中 b 是字符串类型
# 要 python 3.0 中 b 是 bytes 类型
# 因此需要按指定的编码方式确码
# ------------------------------
s = b.decode("gbk")
print ( s )
# ------------------------------
# 在 python 2.4 中 可以写作 print s 或 print ( s )
# 要 python 3.0 中 必须写作 print ( s )
# ------------------------------
f.close()
input("?")
运行后应显示:
张三李四abcd1234
(四) bytes序列,一但形成,其内容是不可变的
例:
s="ABCD"
b=s.encode("gbk")
print b[0] # 显示 65
b[0] = 66
# 执行该句,出现异常: 'bytes' object does not support item assignment
八、 chr( K ) 与 ord( c )
python 2.4.2以前
chr( K ) 将编码K 转为字符,K的范围是 0 ~ 255
ord( c ) 取单个字符的编码, 返回值的范围: 0 ~ 255
python 3.0
chr( K ) 将编码K 转为字符,K的范围是 0 ~ 65535
ord( c ) 取单个字符的编码, 返回值的范围: 0 ~ 65535
九、 除法运算符
python 2.4.2以前
10/3 结果为 3
python 3.0
10 / 3 结果为 3.3333333333333335
10 // 3 结果为 3
十、字节数组对象 --- 新增
(一) 初始化
a = bytearray( 10 )
# a 是一个由十个字节组成的数组,其每个元素是一个字节,类型借用 int
# 此时,每个元素初始值为 0
(二) 字节数组 是可变的
a = bytearray( 10 )
a[0] = 25
# 可以用赋值语句更改其元素,但所赋的值必须在 0 ~ 255 之间
(三) 字节数组的切片仍是字节数组
(四) 字符串转化为字节数组
#coding=gbk
s ="你好"
b = s.encode( "gbk") # 先将字符串按某种“GBK”编码方式转化为 bytes
c = bytearray( b ) #再将 bytes 转化为 字节数组
也可以写作
c = bytearray( "你好", "gbk")
(五) 字节数组转化为字符串
c = bytearray( 4 )
c[0] = 65 ; c[1]=66; c[2]= 67; c[3]= 68
s = c.decode( "gbk" )
print ( s )
# 应显示: ABCD
(六) 字节数组可用于写入文本文件
#coding=gbk
f = open("c:\\1234.txt", "wb")
s = "张三李四abcd1234"
# -------------------------------
# 在 python2.4 中我们可以这样写:
# f.write( s )
# 但在 python 3.0中会引发异常
# -------------------------------
b = s.encode("gbk")
f.write( b )
c=bytearray( "王五","gbk")
f.write( c )
f.close()
input("?")
相关推荐
- **目的**:在Python 2.x中,为了兼容Python 3.x的新特性和语法变化,开发者可以利用内置的`__future__`模块提前引入这些新特性。 - **示例**:比如,要使Python 2.x的行为与Python 3.x一致,可以使用以下代码: `...
- 针对Python 2和3的差异,编写兼容的代码以确保在两个版本中都能正常运行。 20. **协程(Coroutines)**: - 协程是一种用户级别的并发机制,允许多个任务在单线程中交替执行。 - Python 3.5引入了`asyncio`库...
这些内容包括但不限于Python基础语法、库的使用、以及如何将Python应用于数据处理、网络编程、自动化任务、测试、部署以及性能优化等多个方面。 书中明确指出了版权信息,强调了未经出版商事先书面许可,任何人不...
1. **Python语言基础**:熟悉Python的基本语法,能够理解并编写简单的Python脚本。 2. **HTML基础知识**:掌握HTML的基本结构及常用标签,以便于解析网页内容。 #### 三、爬虫技术的学习路径 本文将按照以下路径...
9. **语法变动**:Python 3.4引入了一些新的语法特性,如`with`语句的改进,使得它可以用于更多的情况,以及`yield from`语句,用于简化生成器的代码。 安装`python-3.4.0b2.amd64.msi`这个MSI安装包,用户将获得...
Python 2和Python 3之间存在显著的语法差异,尤其是在字符串处理、异常处理、内置函数等方面。six库提供了一套统一的接口,使得开发者在处理这些差异时无需过多关注具体使用的Python版本。例如,six提供了`six.u()`...
- **Python语法**:理解变量、数据类型、控制流、函数、类等基本概念是进行Python编程的前提。 - **NumPy**:用于处理数值型数据,提供高效的数组操作和矩阵运算。 - **Pandas**:强大的数据处理库,用于数据清洗...
3. 语法变动: - 消除了`<>`,统一使用`!=`表示不等于。 - `<>`操作符被`!=`替换。 - 删除了`print`语句,引入了`print()`函数,允许通过关键字参数控制输出。 - `exec`也从语句变为`exec()`函数。 - `as`和`...
10. **自动化**:这个项目可能还涉及到了自动化流程,例如定时获取产品信息,监控价格变动等,这可能会用到Python的定时任务库如schedule或apScheduler。 通过这些知识点,我们可以构建一个从阿里巴巴获取产品信息...
Python是一种强大的脚本语言,因其简洁的语法和丰富的库支持,被广泛用于Unix和Linux系统的自动化管理。通过Python,你可以编写脚本来自动化日常的维护任务,如备份、日志分析、系统监控等,提高效率和准确性。 2....
在这个例子中,“py3”表示该库适用于Python 3.x版本,“none”意味着它不依赖特定的ABI(应用程序二进制接口),而“any”表示它可以用于任何平台。这种通用性使得 `onegov.applications-2018.11.10-py3-none-any....
通过这个例子,可以了解到Python语法的简洁性。 5. Python脚本文件:文档中提到了hello.py文件,这是用户编写的Python代码文件。在Python中,以.py为后缀的文件通常被视为Python脚本,可以直接运行。 6. Python...
Python是一种强大的编程语言,广泛应用于Web开发、数据分析、人工智能等领域。...Python3.x对编码处理进行了改进,统一使用Unicode作为字符串的基础,通过`encode`和`decode`方法进行编码和解码操作。
1. **Python 编程基础**:熟悉 Python 的语法、数据结构和控制流程。 2. **Tkinter 库**:了解 Tkinter 的组件、事件处理机制和布局管理。 3. **数据库操作**:可能使用 SQLite 或其他轻量级数据库来存储商品信息,...
3. **ArcGIS Desktop API**:理解如何在Python中使用ArcGIS Desktop API(如ArcPy)是关键,这将帮助开发者创建新的工具和脚本,替代原有的VBA宏。 4. **代码迁移策略**:制定详细的迁移计划,逐个测试和转换VBA宏...
4. **Python 2与Python 3的区别**:Python 2.7与Python 3.x之间存在显著差异,包括语法、内置函数和库的变动。比如print语句在Python 2中是语句而在Python 3中是函数,以及字符串处理的差异等。 5. **向后兼容性...
Python因其丰富的库和简洁的语法,成为了数据科学和金融分析的首选工具。 首先,让我们探讨一下股票市场的基本原理。股票价格受多种因素影响,包括公司业绩、宏观经济状况、市场情绪、政策变动等。预测股票价格通常...
随着Python 2的退役,开发者越来越重视对Python 3的支持。"none-any"表示该库不依赖特定的平台或架构,可以在任何支持Python的系统上运行。 **总结** "canaryd-0.3.dev6-py2.py3-none-any.whl"是一个针对Python 2...
本篇文章将详细介绍如何配置GVim以优化Python编程体验,主要包括Python语法高亮、文档视图以及类视图等功能。 首先,让我们从基础开始。`_vimrc`文件是GVim的配置文件,它是Vim启动时读取的脚本,用于设定各种编辑...
本书着重介绍了从 Python 2 升级到 Python 3 过程中的变化,特别强调了语法上的变动以及一些重要的概念更新。 - **1.1 A.K.A. "THE MINUS LEVEL"** - 本章节主要针对已经熟悉 Python 2 的程序员,并且读过原版...