python题

输出结果

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语句的作用

posted @ 2018-12-26 13:39  Tangyun966  阅读(183)  评论(0)    收藏  举报