输出结果
def num(): return[lambda x:i*x for i in range(4)] print([m(2) for m in num()]) #[6,6,6,6]
相当于
def num():
l = []
for i in range(4):
res = lambda x: i*x
l.append(res)
return l
print([m(2) for m in num()])
在程序里面经常会出现这类的循环语句,Python的问题就在于,当循环结束以后,循环体中的临时变量i不会销毁,而是继续存在于执行环境中。还有一个python的现象是,python的函数只有在执行时,才会去找函数体里的变量的值。
python for, while循环后面加else的用法
在循环迭代正常完成之后执行,如果以非正常方式退出循环,如break,那么else分支将不被执行。
n = int(input(':'))
for i in range(2,n):
if n % i == 0:
break
else:
print(n)
pass语句的作用