|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 喜欢小翘臀 于 2016-10-3 19:04 编辑
1 首先先问各位一个白痴问题:是不是if啊else啊for啊写成一行的时候后面就不用加冒号啊,比如在列表推导式的时候,现在遇到的lambda的时候。能不能咱们写lambda的时候也像def一样漂漂亮亮的写成段落配合缩进看的美观大方呢?我自己尝试写了就会报错invalid syntax
2 我在写一个100以内能被3整除的lambda时是这样写的:
lambda x : for x in range(0,100) if x % 3 == 0 print (x)
这里会报错 SyntaxError: invalid syntax。我不知道是自己哪里错了,如果是写简单的lamb x:x -= 1 还行,复杂一点就报这个错
还有就是我想用一个列表推倒式代替zip,我这样写也报同样的错误
lambda x=[],y=[] : for each in range( min( len(x),len(y) ) ) print( [ x[each],y[each] ] )
3 这是课后习题的代码:
def make_repeat(n):
return lambda s : s * n
double = make_repeat(2)
print(double(8))
print(double('FishC'))
用男人的直觉来猜应该参数s是代表重复的次数,double()括号里的是重复的内容
我有个问题是 double = make_repeat(2)是把2传到s那里了吧,它为何能传到s? 2为什么不是传给n的实参然后s没有赋值报个错啥的?
最后感谢花时间看我写的这么多字
|
|