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