python2 与python3 的一些区别

1、print函数

python2:print语句 ( Python2 中若把 print 当函数使用,那么可以导入 future 模块 中的 print_function

Python3:print函数,必须用括号括起来才能调用


2、输入函数

python2:raw_input  得到str,  input 得到int

python3:input 得到str


3、使用super()

python2: 必须显示的在参数中写上基类

python3:直接无参数调用即可


4、1/2的结果

py:返回0

py3:返回0.5,没有了int和long的区别


5、编码

py2:默认编码ascii  ,py2中使用中文,在头部引入coding声明

py3:默认编码utf-8


6、字符串

py2:unicode类型表示字符串序列,str类型表示字节序列

py3::str类型表示字符串序列,byte类型表示字节序列


7、True和False

py2:True 和 False 在 Python2 中是两个全局变量,可以为其赋值或者进行别的操作,初始数值分别为1和0,虽然修改是违背了python设计的原则,但是确实可以更改

py3:修正了这个变量,让True或False不可变


8、迭代器

py2:当中许多返回列表的方法,如range,字典对象的 dict.keys()、dict.values() 方法, map、filter、zip;并且迭代器必须实现next方法

py3:将返回列表的方法改为了返回迭代器对象,内置了__next__,不用特意去实现next


9、nonlocal

py2:没有办法在嵌套函数中将变量声明为一个非局部变量,只能在函数中声明全局变量

py3:nonlocal方法实现了,即在内部嵌套函数中用关键字nonlocal修饰局部变量,可修改这个局部变量

如:

def func():
 c = 1
    def foo():
        c = 12
    foo()
    print(c)
func()    #1
def func():
    c = 1
    def foo():
        nonlocal c
        c = 12
    foo()
    print(c)
func()   # 12

10、其他

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

猜你喜欢

转载自blog.csdn.net/register_2/article/details/80246770