python2.* 版本 与 3.* 版本中的区别

目录

print函数

print "Hello World"		# 2.x版本中格式
print("Hello World")	# 3.x版本中格式
''' 2.6版本已可以支持新的print()语法'''
from __future__ import print_function
print("fish", "panda", sep=', ')

Unicode编码

  • python2.x 解释器默认编码格式:ASCII,因此默认字符串不支持中文
  • python3.x 解释器默认编码格式:UTF-8

不等运算符

  • python2.x 不等于,有两种写法:!=<>
  • python3.x 不等于,只有一种写法:!=,去掉了 <> 写法

数据类型

  • python2.x中数据类型分为:整型(int)长整型(long)两种类型;

  • python3.x中去掉了长整型(long),把长整型(long)整合到整型(int)中,保留了一种;

  • python3.x中新增了bytes类型,对应于2.X版本的八位串,定义一个bytes字面量的方法;

    >>> b = b'china' 
    >>> type(b) 
    <type 'bytes'>
    
    • str 对象和 bytes 对象可以使用 .encode() (str -> bytes).decode() (bytes -> str)方法相互转化;

      >>> s = b.decode() 
      >>> s 
      'china' 
      >>> b1 = s.encode() 
      >>> b1 
      b'china' 
      

raw_input()和input( )

python2.x中raw_input()input( ),两个函数都存在,其中区别为:

  • raw_input()---将所有输入作为字符串看待,返回字符串类型
  • input()-----只能接收"数字"的输入,在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型(int, float )

在python3.x中raw_input()input( )进行了整合,去除了raw_input(),仅保留了input()函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。

map 和 filter

python2.x 中mapfilter两者的类型是:内置函数(built-in function),返回值则是列表类型数据;

map(lambda x:x*2, [1,2,3])		>> [2,4,6]
filter(lambda x:x%2==0, range(10))    >>[0,2,4,6,8]

python3.x 中mapfilter两者的类型是:类(class),返回结果也从当初的列表成了一个可迭代的对象;

map(lambda x:x*2, [1,2,3])   >> map object at 0x10d8bd400>
filter(lambda x:x%2==0, range(10))   >> filter object at 0x10d8bd3c8>
上一篇:python第七课(基本代码)


下一篇:1089. 复写零:给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。