生产环境迈上 Python 3.x

作为一名老司机,罗列下几个注意点,纪念下匆匆岁月。

  1. print 不再是语句,而是函数
print("Hello, World!")

大家第一印象,告诫着我们 3.x 不向下兼容。

  1. 整除的问题
    还记得第一次发现1/3 == 0 的震惊吗?

  2. Unicode 问题
    还记得第一次见到乱码时的困惑吗? utf-8 一统天下指日可待。

  3. 升级版 range
    或者不希望新人再去区分 xrange 是什么了?
    而且因为有了 __contains__ 所以可以

1 in range(3)
  1. raise exceptions
    同样需要一个括号
raise Exception("error")
  1. handing exceptions
    现在需要 as 了
try:
    raise Exception("error")
exception Exception as err:
    print(err, "error")
  1. for 循环控制 变量不再泄露进周围作用域
    取缔了一个黑暗魔法

  2. input()
    跟 range 一样,吞并了 raw_input()

  3. items()
    跟 range 一样,吞并了 iteritems()
    所以

d = {"a":"a", "b":"b"}  
print([(v, k) for k, v in d.items()])
  1. 函数返回值
    同 range 一样,zip(), map(),filter() 不再返回 list 而是返回迭代对象。可以
print(list(range(3)))。

总之,旧时代一去不复返,新时代已来临。

你可能感兴趣的:(生产环境迈上 Python 3.x)