求大哥们帮忙解答
请问这个return x%2是除掉2所余的数,那这个作为返回值,返回的应该是个1或者0,那为什么在filter里就直接把偶数筛选掉了呢 0 是 False,非 0 是 True odd是一个函数他返回的是一个真假值,所以会滤掉一部分数据 filter(odd,temp):把temp这个列表所有的数字逐一导入函数odd,根据return的值是true还是False来决定是否将数字丢弃。temp =
导入odd得到
将返回值为0(False)的丢掉,得到 因为 odd函数的返回值 要么是 0要么 是1在Python 中 0 可以代表False非零数可以代表True 所以如果返回1话代表 True
所以fiter过滤过程中 如果返回 0就过滤掉如果返回 1 就把他留下来 因为任何数除以2,余数只可能是0或1,
如果是偶数,则没有余数(0),如果是奇数,则有余数(1)。
根据这个判断,如果为0(偶数),就是False,会被filter删除掉,
但如果是1(技术),就是True,不会被filter删除。
求最佳~ 是这样的,楼主,你先仔细看看你的代码,是不是有:
return x%2 也就是返回除以2以后所余的数,而一个数,只要它去除以2,那么是不是只有3种情况,
当为整除的时候,余下0,或者不能整除余下1,那有没有可能比1还要打呢?不可能,因为它只要大过1,就必定>=2,
那么就必定会被2除掉,所以只能最大余1.所以它导入给odd就会得到 ,这其中返回0的是不是就是偶数
而返回1的就一定是奇数,返回1话代表 True,返回0的代表False,也就是说True代表的就是奇数,而False代表的就是偶数(0—偶数,被整除—False)
所以在fiter过滤过程中,把那些返回0的就都过滤掉了,也就是把偶数都过滤掉了,也就是你最后所看到的结果, 1留了下来,也就是奇数留了下来,过滤了偶数,
最后的结果自然就是,因为你输入的temp = 中的偶数都被筛出去了,过滤掉了。所以,结果和逻辑一目了然。
页:
[1]