Python基本知识

2020-06-13  本文已影响0人  别学编程

一,解释器默认编码的区别

  Python2解释器默认编码:ASCII
  Python3解释器默认编码:UTF8

二,print语句的区别

Python2: 
print 1,2+3
print '2+3'
print "2+3"
Python3: 
print(1,2+3,end=" ")
print('2+3')
print("2+3")

三,input区别

  Python2: name=raw_input('请输入姓名')
  Python3: name=input('请输入姓名')

四,数字表示

  python2:
    - 64位机器,范围-263~263-1
    - 超出上述范围,python自动转化为long(长整型)
    注:long(长整型)数字末尾有一个L
  python3:
    - 所有整型都是int,没有long(长整型)

五,try except

  Python2:

try:
      ......
  except Exception,e:
      ......

  Python3:

try:
      ......
  except Exception as e:
      ......

六,整型除法

  python2:只能保留整数位
  python3:可以保留所有内容

七,range / xrange

  python2:
    xrange:不会在内存中立即创建,而是在循环时,边循环边创建
    range:在内存立即把所有的值创建
  python3:
    只有range,相当于python2中的xrange
    range:不会在内存中立即创建,而是在循环时,边循环边创建

八,包的定义

  python2:文件夹中必须有_ _ init _ .py文件
  python3:不需要有
_ init _ _.py文件

九,字典的keys / values / items方法

  python2:返回列表,通过索引可以取值
  python3:返回迭代器,只能通过循环取值,不能通过索引取值

十,map

  python2:返回列表,直接创建值,可以通过索引取值
  python3:返回迭代器,不直接创建值,通过循环,边循环边创建

十一,str的区别

  python2:
    str类型,相当于python3中的字节类型,utf-8/gbk等其他编码
    unicode类型,相当于python3中的字符串类型,unicode编码
    python2中没有字节类型
  python3:
    str类型,字符串类型,unicode编码
    python3中没有unicode类型

十二,继承object

class Foo:
  pass
class Foo(object):
  pass
# 在python3中这俩的写法是一样,因为所有的类默认都会继承object类,全部都是新式类。
# 如果在python2中这样定义,则称其为:经典类
class Foo:
  pass 
# 如果在python2中这样定义,则称其为:新式类
class Foo(object):
  pass
# 新式类
# 继承object
  # 支持super
  # 多继承 广度优先C3算法
  # mro方法
# 经典类
  # py2中不继承object
  # 没有super语法
  # 多继承 深度优先
  # 没有mro方法
上一篇下一篇

猜你喜欢

热点阅读