最赞回答 / qq_苏格拉没有底_14
这里你是吧filter的用法没搞清楚。filter return的是要留下的元素所满足的条件,不能用if来表达。就像return男人,就把list中的男人元素留下了,不能写成 if 男人。
2017-07-28
最新回答 / 慕慕9426646
我来说一下我的理解,从代码的6行,fs.append(f),这个f是一个变量名,也就是一个指针,而函数的指针是从函数创建开始就不会变的,当第一次循环,fs.append(1),添加到list里面的数值是1,当第二次,第三次调用的时候,fs.append(f)会将前几次的值全部覆盖,因为添加的是一个指针,这个函数指针又开始访问函数,所以返回的都是9 ,以上仅仅是我个人见解,多多讨论
2017-07-28
最新回答 / 慕哥2587987
因为f()表示运行f这个函数,而在你的代码中f不是一个函数,只是一个普通变量,所以f()自然就不对,而该变量接受了calc_prod([1, 2, 3, 4])的值,所以print f输出的实际上就是calc_prod([1, 2, 3, 4])的运行结果
2017-07-28
最新回答 / 小同不一
语法不应该这么写 吧 应该先进行IF判断再进行返回吧。 if type(math.sqrt(x)) == type(1): return x再一个 你这个会得到一个空列表,因为 及时能被开方 得到的结果 也是float类型的
2017-07-28