鱼C论坛

 找回密码
 立即注册
查看: 1771|回复: 5

[已解决]第021讲课后作业问题

[复制链接]
发表于 2020-2-17 22:33:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目要求是:你可以利用 filter() 和 lambda 表达式快速求出 100 以内所有 3 的倍数吗?
答案是:
print(list(filter(lambda x:not x%3,range(100))))
我的疑问是 5,8,11....等等这些数除3余2,为什么会把这些数也剔除掉?其他4,7,10等等除3余1剔除我明白。
最佳答案
2020-2-17 22:48:25
如果是3的倍数x%3为0,即False,否则为True。
not再取反,即3的倍数时为True,否则为False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-17 22:36:21 | 显示全部楼层
not x%3意味着只要不是3的倍数就为False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-17 22:44:22 | 显示全部楼层
冬雪雪冬 发表于 2020-2-17 22:36
not x%3意味着只要不是3的倍数就为False

x%3 不是x÷3的余数的意思吗?为什么not x%3就是False?我还是不明白,麻烦您再解释一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-17 22:46:57 From FishC Mobile | 显示全部楼层
我个人,萌新的理解哈,x%3为0就是false,notx%3就是ture了也不知道对不对如果理解有误希望大佬指出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-17 22:48:25 | 显示全部楼层    本楼为最佳答案   
如果是3的倍数x%3为0,即False,否则为True。
not再取反,即3的倍数时为True,否则为False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 18:14:38 | 显示全部楼层
好好学不玩手机 发表于 2020-2-17 22:44
x%3 不是x÷3的余数的意思吗?为什么not x%3就是False?我还是不明白,麻烦您再解释一下。

因为X%3的余数为0,布尔数true和false对应的也是true=1,false=0,所以x%3=0=false,not false就变成true了,所以filter把true的值挑出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 07:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表