zoukankan      html  css  js  c++  java
  • Python2和Python3的一些区别

    在这里插入图片描述

    最近在改项目中的python代码,之前用python2写的,现在准备改成python3,遇到一些小情况,在此记录一下:

    (1)除法的区别

    在python2中,对于两个int变量进行 “ / ” 除法操作,得到的结果是整数,小数部分直接舍去。
    而在python3中, 单斜线 “ / ” 表示的就是实际的除法,而对应于python2的整除模式要用双斜杠 “ // ” 来代替

    import sys
    sys.version
    Out[69]: '3.5.2 (default, Nov 23 2017, 16:37:01) 
    [GCC 5.4.0 20160609]'
    a = 5
    b = 3
    a/b
    Out[72]: 1.6666666666666667
    a//b
    Out[73]: 1
    

    (2)print的区别

    打印输出函数print在py2和3中也不同,在py2中,print可以是一个语法结构,可以直接写成 print xxx,当然,也可以用函数的形式写成print(xxx)的形式。

    而在py3中,print只保留了函数的功能,因此是一个内置函数了,因此只能用括号括起来才能使用。

    print函数的原型为:

    print(value1, ..., sep=' ', end='
    ', file=sys.stdout, flush=False)
    

    其中,value1,value2等等表示要打印的值,sep是分隔符,默认是空格,也就是用空格分开,end表示结尾,如果想要不换行,就可以把 " " 换成其他,如空格等。

    print(a,b)
    5 3
    
    print(a,b,sep=',')
    5,3
    
    print(a,b,end=' '); print('end')
    5 3 end
    
    print(a,b); print('end')
    5 3
    end
    

    (3)dict中查找键值的区别

    在python2中,dict又一个成员函数has_key(),可以用来看有没有某个key值。在python3中,这个函数被“__contains__”代替,用来查看是否有某个键值。

    a = dict({'air':50, 'ball':1, 'cat':3})
    
    a
    Out[88]: {'air': 50, 'ball': 1, 'cat': 3}
    
    a.__contains__('air')
    Out[89]: True
    
    a.__contains__('dog')
    Out[90]: False
    
    a.has_key('cat')
    Traceback (most recent call last):
    
      File "<ipython-input-91-10d7eb410811>", line 1, in <module>
        a.has_key('cat')
    
    AttributeError: 'dict' object has no attribute 'has_key'
    

    ps: 最近毕业事务繁忙,日常时间都用来写论文和做实验了,因此博客好久没更新。。。
    本周已经答辩完啦~顺利从master candidate变成了一只master
    所以以后将继续用这个blog记一些笔记和总结

    近期的一些准备关注的方向:CA、NLP、小样本、医学图像处理。可能会整理一些相关的论文笔记。

    伤情最是晚凉天,憔悴斯人不堪怜。 邀酒摧肠三杯醉,寻香惊梦五更寒。 钗头凤斜卿有泪,荼蘼花了我无缘。 小楼寂寞新雨月,也难如钩也难圆。 ——马 东

    PS:(补充)

    reduce函数的位置

    python2中,reduce可以直接使用,在python3中,reduce在functools模块中,需要先进行引入:

    from functools import reduce
    

    2019-11-12 17:59:48

  • 相关阅读:
    Android 9.0版本及以上开发时遇到的一些版本问题
    【经典】半平面交求解方程组——poj1755
    【模板】凸包向内推进求不严格的半平面交——poj3384
    二分+半平面交——poj1279
    AngularJS 启程
    全栈工程师--这才是真正的从入门到跑路
    数据库学习路线-从入门到入土
    java学习路线-从入门到入土
    前端路线-从入门到入土
    前端小练习
  • 原文地址:https://www.cnblogs.com/morikokyuro/p/13256684.html
Copyright © 2011-2022 走看看