Python面试中8个必考问题

def multipliers():
  return [lambda x : i * x for i in range(4)]
    
print [m(2) for m in multipliers()]

代码的输出结果是:[6,6,6,6]

不管函数是否被调用,for循环都会执行完, i的结果是3

次返回的函数乘以传递过来的值3,因为上段代码传过来的值是2,它们最终返回的都是6。

Python2 和Python3 的整除

C:\Users\Administrator>python2
Python 2.7.13 (v2.7.13:a06454b1afa1, D
AMD64)] on win32
Type "help", "copyright", "credits" or
>>> 3/2
1
>>> 3//2
1
>>> 3/2.0  # 有一个是浮点数的时候是精确的运算
1.5
>>> 3//2.0  # 此时是整除后的浮点数
1.0
>>> ^Z


C:\Users\Administrator>python3
Python 3.6.1 |Anaconda 4.4.0 (64-bit)|
900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or
>>> 3/2  # 精确的运算
1.5
>>> 3//2 # 整除
1
>>> 3/2.0
1.5
>>> 3//2.0
1.0
>>> ^Z

参考:
https://segmentfault.com/a/1190000006265256

posted @ 2017-08-23 19:20  hzxPeter  阅读(158)  评论(0编辑  收藏  举报