2024-05-29 03:19:07 发布
网友
这是我的简单演示while循环。
count = 0 while count < 5: print 'The count is:', count count = count + 1
现在我想使用lambdas更改normal while循环。
def func(): count = 0 print 'The count is:', count count += 1 a = lambda count: (count < 5 and func() ) print a
我做错什么了?
lambda与loop无关。这只是定义函数的内联方法。
不使用lambda,您可以编写下面的代码。使用lambda的唯一区别是定义的函数得到一个名称。
def func(n): print 'The count is:', n def mylambda(count): return (count < 5 and func()) a = mylambda print a
现在也许你可以自己看看怎么了?
实际上,我还在想你到底想干什么?循环调用lambda?创建递归lambda?任何人都可以猜到更多细节。
您的代码有许多错误,我认为不应该使用lambda来调用没有返回值的另一个函数。如果你必须这样做,它会像:
lambda
def func(n): i = 0 while i < n: print 'The count is:', i i += 1 a = lambda count: func(count) a(5)
你的问题的答案在于细节
See section Function definitions for the syntax of parameter lists. Note that functions created with lambda expressions cannot contain statements.
而while是Compund Statement的一部分
while
简单来说
如果你能在表格中写下你的函数
def name(arguments): return expression
你可以把它转换成lambda
name = lambda arguments: expression
I am trying to implement while loop using lambdas
你应该认真考虑使用itertools.dropwhile或itertools.takewhile
lambda与loop无关。这只是定义函数的内联方法。
不使用lambda,您可以编写下面的代码。使用lambda的唯一区别是定义的函数得到一个名称。
现在也许你可以自己看看怎么了?
实际上,我还在想你到底想干什么?循环调用lambda?创建递归lambda?任何人都可以猜到更多细节。
您的代码有许多错误,我认为不应该使用
lambda
来调用没有返回值的另一个函数。如果你必须这样做,它会像:你的问题的答案在于细节
See section Function definitions for the syntax of parameter lists. Note that functions created with lambda expressions cannot contain statements.
而
while
是Compund Statement的一部分简单来说
如果你能在表格中写下你的函数
你可以把它转换成lambda
你应该认真考虑使用itertools.dropwhile或itertools.takewhile
相关问题 更多 >
编程相关推荐