当前位置:首页 > 后端开发 > Python3.x对Python2.x的语法变动

Python3.x对Python2.x的语法变动

7个月前 (05-24)41

一: print从语句变成函数

原 print 1,2+3 改成 print(1,2+3)>>>1 5

二:range与xrange

原rang(0,4) 结果为列表[0,1,2,3] 改成 list(range(0,4))

远xrange适用于for循环的变量控制,改成range(0,4)

三:字符串

原字符串以8-bit字符串存储,现在改成16-bit Unicode字符存储

四:try...except

原 try
    ...
  except Exception,e
    ...
改成
try
    ...
  except Exception as e
    ...

五:打开文件
原file(...)或open(...),现在只能用后者

六:从键盘录入一个字符串
原raw_input("message")改成input('message')

七:bytes数据类型
bytes改成”字节数组“对象,每个元素是8-bit的字节,取值范围0~255
由于python3中字符串是以unicode编码存储,当写入二进制文件时,字符串无法直接写入(或读取),必须以某种方式编码为字节序列后,方可写入

常用的编码方式:"utf-8","utf-16","gb2312","gbk","ascii","latin1"等,当字符串不能编码为指定的编码方式时,会发生异常

1:字符串编码(encode)为bytes
例:s = "张三abc12"
      b=s.encode("utf-8")       
  print(b)>>>输出b'\xe5\xbc\xa0\xe4\xb8\x89abc123'
      print(b.decode("utf-8"))>>>张三abc12

 

使用方法举例:

写入

 

#coding=gbk

f=open("c:\\test.txt","wb")

s="张三1234abcd"

#-------------

#在python2.x中可以这样写:f.write(s)

#-------------

b=s.encode("gbk")
f.write(b)
f.close()

input("?")

读取

#coding=gbk

f=open("c:\\test.txt","rb")
f.seek(0,2)#定位至文件尾
n=f.tell()#读取文件的字节数
f.seek(0,0)#重新定位至文件开始处
b=f.read(n)
#在python2.x中b是字符串类型,而在python3.0中b是bytes类型。因为需要按指定的编码方式编码
s=b.decode("gbk")
print(s)
f.close()

2:bytes序列一旦形成是不可更改的,如

s="ABCD"
b=s.encode("gbk")
print (b[0])   #显示65
b[0]=66 #出错

 

八:chr(K)与ord(c)

chr(K)将编码K转为字符,K的范围是0~255(2.x),3.0中K得范围是:0~65535

ord(c)取单个字符的编码,返回值范围是0~255(2.x),3.0中c得范围是:0~65535

 

九:除法运算符

2.x >>> 10/3 => 3

3.0>>>10/3=>3.3333333333333335    10//3=>3

十:字节数组对象——新增

1:初始化
a=bytearray(10)   #a是一个由10个字节组成的数组,其中每个元素是一个字节,类型借用int。此时每个初始值为0

2:字节数组是可变的

a=bytearray(10)
a[0]=25   #可以用赋值语句更改其元素,但所赋的值必须在0~255之间
转换为list:b=list(a)

3:字节数组的切片仍然是字节数组

4:字符串转换成字节数组

s="你好"
b=s.encode("gbk")  #先将字符串按某种编码方式(gbk)转换成bytes
c=bytearray(b)       #再将bytes转化成字节数组
也可以写作:c=bytearray("你好","gbk")

5:字节数组转化成字符串

c=bytearray(4)
 c[0]=65;c[1]=66;c[2]=67;c[3]=68

>>> s=c.decode("gbk")

>>> print(s)

显示:ABCD

6:字节数组可以用于写入文本文件

f=open("c:\\test.txt","wb")
s="张三李四1234abcd"
b=s.encode("gbk")
f.write(b)
c=bytearray("王五","gbk")
f.write(c)
f.close()

 

作者:cateatmycode
来源链接:https://www.cnblogs.com/mumue/archive/2012/04/22/2465258.html

标签: Python

“Python3.x对Python2.x的语法变动” 的相关文章

python的安装和配置环境变量

python的安装和配置环境变量

Python2.7安装和配置环境变量    1.python2.7下载地址:https://www.python.org/getit/  &nb...

第二篇:Python安装及环境变量的操作

1.配置环境变量方法在计算机-属性-高级系统设置-高级-环境变量-系统变量-path中追加Python软件包的路径补充:各个变量值是用;分隔的 2.环境变量配置后,在cmd中可直接...

python概述与环境安装

python概述与环境安装

Python简介 Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语...

Python2.x与Python3.x的主要区别

python2.x和python3.x版本有很大的差异,除了依赖包的名称变化很大外,其主要差异总结如下: 1)print函数 Python3中,...

Windows10下PCL1.8.1以及Python-pcl1.81环境配置的掉发之路

Windows10下PCL1.8.1以及Python-pcl1.81环境配置的掉发之路

       因需要对三维激光点云进行处理,看到有C++下的PCL点云库,和Python下的Python-pcl(脱胎于C++下的PCL),在C+...

python中的str.replace()函数

python中的str.replace()函数

python中字符串的元素替换函数,一般来说使用方法为 str.replace(old, new[, max]) 例如 s =...

cmd中查看python版本和安装路径

cmd中查看python版本和安装路径

作者:月笼纱lhz 来源链接:https://blog.csdn.net/weixin_39732131/article/details/100068902...

扩展Python模块系列(一)----开发环境配置

扩展Python模块系列(一)----开发环境配置

    本系列将介绍如何用C/C++扩展Python模块,使用C语言编写Python模块,添加到Python中作为一个built-in模块。Python与C之间的交互...

Python2.x安装

Python2.x安装

python安装 1、简介 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的。由于之前代码都是2.x版本的, 这里也是以Pyth...

Mac 电脑安装 Python 环境

Mac 电脑安装 Python 环境

大家好啊,我是大田 2022.04.08,日更第 62 / 365 天。 今天来给大家分享下在 Mac 电脑上如何安装 Python 环境。...