A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小刀葛小伦 于 2019-5-30 16:10 编辑

1.Python3没有向下兼容
2.Python2.6与2.7是过度版本,使用Python2的语法和库,允许部分Py3的语法和函数
编码:
    Py2:有两种字符串类型,Unicode和非Unicode字符串,源码默认"ASCII",
              但字符编码在不同环境不一样,Linux是UTF-8,Windows 是GBK
    Py3:只有Unicode字符串,源码文件默认"utf-8"   
   注意:编码可以应用encode()编码,decode()解码,Unicode是中间码,来进行各个编码的转换
语法:
    1.去除了<>,改用!=
    2.去除"",改用repr() 【repr()作用:用户转换任意字符为str类型】
    3.关键字加入as和with,以及True,False,None
    4.整形除法返回浮点数,要得到整形结果使用 // ,但是在 / 计算时,都存在精度丢失的问题(例如:10 / 3 || 1/0.3)
    5.加入了nonlocal,使用nonclocl x 可以直接指派(非全局)变量
    6.Py3去除了print语句,加入print()函数,以及exec语句,改为exce()函数
       【exce用于执行存储在字符串或文件中的python语句】
    7.改变了顺序操作符的行为,x < y 如果类型不匹配抛出TypeError,Py2是返回随机的boole值
    8.输入函数删除 raw_input() ,用 input() 代替。
       【 py3:input 获取的数据默认是 string 类型
         py2:raw_input 获取的数据更加内容自动推导,不带任何装饰为 int ,加 "" 为 str ,带小数为 float 】
    9.新的 super() 可以不再传递参数【super用于继承父类方法时的调用】
    10.之前字典对象 has_key() 测试字典是否包含指定键,改为 in
    11.py2中迭代器的 next() ,用于返回序列的下一项。py3 改为 __next__() ,并增加内置函数 next() ,用来调用 __next__()
    12.异常从 BaseException 继承,去除了 StardardError
    13.去除了异常类的序列行为和 .message 属性
    14.捕获异常语法变化 except xx,error 更改为 excepr xx as error
    15.Py3文件类中,file类被废弃
    16.py2中的 xrange【生成器,调用时获取内容】更改为Py3中的 range【生成一个序列】,都是在循环时使用
数据类型:
    1.py3去除了 long ,只有 int 。类似py2中的 long
    2.新增 bytes 类型,str 对象和  bytes 对象可以通过 encode()【编码】和 docode()【解码】进行相互转换
总体没有写的很全,打算后续用到的时候再进行添加,至少前面的知道了解就足够了。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马