返回顶部
首页 > 资讯 > 后端开发 > Python >python2与python3的区别
  • 568
分享到

python2与python3的区别

区别 2023-01-31 05:01:53 568人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

说明:标注?????是暂时没遇到且看不懂的,做个标记。常见的区别有print,range,open,模块改名,input,整除/,异常 except A as B 为了不带入过多的累赘,python 3.0在设计的时候没有考虑向下相容。过

说明:标注?????是暂时没遇到且看不懂的,做个标记。常见的区别有print,range,open,模块改名,input,整除/,异常 except A as B

为了不带入过多的累赘,python 3.0在设计的时候没有考虑向下相容。过渡版本Python2.6基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。

目录

新增nonlocal在闭包中改变临时变量 

Unicode编码存储字符串

数据类型新增bytes

除法/不需要转float

异常捕获 加as

range

八进制表示   只能0o1000

不等运算符 只能!=

去掉了repr表达式``

模块改名

 字典的关键字 用属性代替函数

从键盘键入字符串input

map、filter、reduce

打开文件 open

chr( K ) 与 ord( c )的范围

字节数组对象bytearry


python2没有nonlocal关键字,要修改临时变量只能将其改成可变数据类型,如数组。b=[a]

print()函数代替print语句

 Python 3加入 Unicode 字符串,用以编码存储字符串。比如用 utf-8可以用来输入中文

 Python 3去掉long类型,新增了bytes。可以看成是“字节数组”对象,每个元素是 8-bit 的字节,取值范围 0~255。

在 python 3中字符串以 unicode 编码存储,当写入二进制文件时,字符串无法直接写入writr(或读取),必须以某种方式的编码(encode编码/decode解码)为字节序列后,方可写入。换句话说str类型的字符串无法write进文件,要将str字符串encode为bytes才能write


a='asdfg'
print(type(a))
b=a.encode()
print(type(b))
c=b'qwe'
print(type(c))
d=c.decode()
print(type(d))

运行结果:

<class 'str'>
<class 'bytes'>
<class 'bytes'>
<class 'str'>

注意:type类型的数据不能当成普通的int型去修改


s="ABCD"
b=s.encode("gbk")
print (b[0])       # 输出65
b[0] = 66 #TypeError: 'bytes' object does not support item assignment

 

 Python 3整数之间做除法可以得到浮点数的结果,不需要进行数据格式转换1/2=0.5

 Python 2整数int间除法结果为把运算结果去尾的整数1/2=0,3/2.0=1.5

 Python 3 中   except exc as var

 Python 2中     except exc , var

?????????????

 Python 3 中 range()

Python 2 中 xrange()

?????????????

 

 Python 2 中 0o1000 或者01000

 Python 3 中 只能0o1000

 Python 2 中 != 或者<>

 Python 3 中 只能!=

?????????????

????????????????

线程模块:Python 2 中 thread,Python 3 中_thread

Python 3去掉iterkeys()、 dict.has_key(),用.keys()、.items 和.values()方法返回迭代器


dict1={'a':1,"b":2,"c":3}
print(dict1.keys())
print(dict1.values())
print(dict1.items())

运行结果:

dict_keys(['a', 'b', 'c'])
dict_values([1, 2, 3])
dict_items([('a', 1), ('b', 2), ('c', 3)])

Python 2 中 raw_input("提示信息")用以输入字符串     ; input()用以输入数字

 Python 3 中input("提示信息")将所有输入默认为字符串

 Python 2 中 map、filter是内置函数,输出为列表

 Python 3 中 map、filter是类,返回可迭代的对象,可用next()进行迭代

“对于比较高端的 reduce 函数,它在 Python 3.x 中已经不属于 built-in 了,被挪到 functools 模块当中。”

 Python 2 中  file(。。。)或oen(。。。)

 Python 3 中  只能open(。。。)

???????????????

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

python3新增,将多个bytes字节类型数据组成数组。

(1) 初始化

    a = bytearray(   10 )

     # a 是一个由十个字节组成的数组,其每个元素是一个字节,类型借用 int

     # 此时,每个元素初始值为 0

(2) 字节数组 是可变的

    a = bytearray(   10 )

     a[0] = 25

     # 可以用赋值语句更改其元素,但所赋的值必须在 0 ~ 255 之间

(3)   字节数组的切片仍是字节数组

(4)   字符串转化为字节数组

     #coding=gbk

     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) 字节数组可用于写入文本文件

#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("?")

 

 

 

参考网址:

Http://www.runoob.com/python/python-2x-3x.html

https://www.cnblogs.com/hanggegege/p/5840005.html

 

 

 

 

 

--结束END--

本文标题: python2与python3的区别

本文链接: https://lsjlt.com/news/188261.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python2与python3的区别
    说明:标注?????是暂时没遇到且看不懂的,做个标记。常见的区别有print,range,open,模块改名,input,整除/,异常 except A as B 为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。过...
    99+
    2023-01-31
    区别
  • Python2.x与Python3.x的区别
    Python的3​​.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python 3.0在设计的...
    99+
    2022-06-04
    区别
  • 简述Python2与Python3的区别
    Python2与Python3的区别 python解释器默认编码(python2与python3的区别一) python2 解释器默认编码:ascii python3 解释器默认编码:utf-8 输入(python2与pyth...
    99+
    2023-01-31
    区别
  • python2与python3的区别齐全
    一、核心类差异 1. Python3 对 Unicode 字符的原生支持。 Python2 中使用 ASCII 码作为默认编码方式导致 string 有两种类型 str 和 unicode,Python3 只 支持 unicode 的 s...
    99+
    2023-01-31
    齐全 区别
  • python2和python3的区别
    1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和×××操作上可 以取得很好的优化结果。 Py3.1性能比Py2.5慢15%,还有很大的提升空间。 2...
    99+
    2023-01-31
    区别
  • python3 和 python2的区别
    python2python31. Python3对Unicode字符的原生支持。Python2中使用 ASCII 码作为默认编码方式导致string有两种类型str 和unicode,Python3只支持unicode的string。Py...
    99+
    2023-01-31
    区别
  • 转:python3和Python2的区别
    print函数:(Python3中print为一个函数,必须用括号括起来;Python2中print为class) Python 2 的 print 声明已经被 print() 函数取代了,这意味着我们必须包装我们想打印在小括号中...
    99+
    2023-01-31
    区别
  • Python2和Python3的区别,以
    学习Python 2还是Python 3?罗振宇在今年的跨年演讲,《时间的朋友》中有个观点,大意是说,人们都有一种受虐情节,有时候希望别人对他粗暴一点。为此,他还举了两个例子,分别是“乔布斯对待消费者的态度”和“和菜头不尊重他的饮食需求”...
    99+
    2023-01-31
    区别
  • python3 与python2 异常处理的区别与联系
    在python2.x中 ,异常是这样的处理的,异常基类后面加一个逗号“ ,” 然后跟着异常类型 import traceback try: 1/0 except Exception , err:...
    99+
    2022-06-04
    异常 区别
  • Python2和Python3的区别有哪些
    本篇内容主要讲解“Python2和Python3的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python2和Python3的区别有哪些”吧!什么是鸭子类型(duck typing)...
    99+
    2023-06-03
  • python2与python3分别在wi
            本文介绍如何在一台同时安装了python2.7和python3.6的windows系统电脑分别安装和配置setuptools和pip。其实环境变量配置时,python2.7和python3.6哪个在前面,哪个就生效,在后面...
    99+
    2023-01-31
    分别在 wi
  • python2和python3有什么区别
    python2和python3有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象...
    99+
    2023-06-14
  • Python3 和 Python2 有什么区别
    这篇文章给大家介绍Python3 和 Python2 有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python3和Python2相比:Python3去除print语句,加入print()函数实现相同的功能。...
    99+
    2023-06-19
  • python2和python3版本有哪些区别
    这篇文章主要介绍了python2和python3版本有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Python主要用来做什么Python主要应用于:1、Web开发;...
    99+
    2023-06-14
  • python3.x与python2.x的
    python3.x与python2.7.x都是比较流行的版本,虽然建议现在的初学者开始学习python3.x的版本,但是还有很多的工程使用的是python2.7.x版本。观看代码的时候难免会出现一些问题。 在google上搜到比...
    99+
    2023-01-31
  • Python2.x与Python3.x的
    python2.x和python3.x版本有很大的差异,除了依赖包的名称变化很大外,其主要差异总结如下: 1)print函数 Python3中,print函数的括号是必须的,Python2是可选的。 2)键盘读取输入方面 P...
    99+
    2023-01-31
  • Python3 与 Python2共存
    Python3 与 Python2共存 查看当前python版本 python --version 备份python which python mv /usr/bin/python /usr/bin/python.bak 下载...
    99+
    2023-01-31
  • python2和python3的一些差别
    未来python3是主流,但还是因为一部分原因,很多项目还在用python2。python3是不兼容python2的,做了一些优化和改进 1.字符编码   python2:ascii编码   python3:unicode编码(默认utf...
    99+
    2023-01-30
    差别
  • Python2.x与3.x版本区别
                              Python2.x与3.x版本区别   Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。    为了不带入过多的...
    99+
    2023-01-31
    区别 版本
  • Python2.x与3​​.x版本区别
    Python 3.0的变化主要在以下几个方面: print 函数 print语句没有了,取而代之的是print()函数。 Python 2.6与Python 2.7部分地支持这种形式的print语法。在Python 2.6与Python 2...
    99+
    2023-01-31
    区别 版本
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作