鱼C论坛

 找回密码
 立即注册
查看: 3674|回复: 11

[已解决]打印1到100间能被3整除的数字

[复制链接]
发表于 2019-6-24 21:36:15 | 显示全部楼层 |阅读模式
1鱼币
用def函数,打印1到100间能被3整除的数字。写出的代码里带有None值,要怎么去除?
def fun1(i):
    if not (i%3):
        return i
   
list1=[]
for i in range(1,100):
    list1.append(fun1(i))

print(list1)
最佳答案
2019-6-24 21:36:16
stealer 发表于 2019-6-24 22:15
定义函数后,不借助其它函数,就真的实现不了吗?
  1. def fun1(i):
  2.     if not (i%3):
  3.         return i
  4.    
  5. list1=[]
  6. for i in range(1,100):
  7.     if fun1(i):
  8.         list1.append(fun1(i))

  9. print(list1)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-24 21:36:16 | 显示全部楼层    本楼为最佳答案   
stealer 发表于 2019-6-24 22:15
定义函数后,不借助其它函数,就真的实现不了吗?
  1. def fun1(i):
  2.     if not (i%3):
  3.         return i
  4.    
  5. list1=[]
  6. for i in range(1,100):
  7.     if fun1(i):
  8.         list1.append(fun1(i))

  9. print(list1)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-24 21:40:56 | 显示全部楼层
list=[]
for i in range(100):
    if i%3==0:
        list.append(i)
print(list)

自己把0 去掉!!1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-24 21:43:43 | 显示全部楼层
用filter吧。
  1. def fun1(i):
  2.     if not (i%3):
  3.         return i
  4.    
  5. list1=list(filter(fun1, range(1, 100)))

  6. print(list1)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-24 21:45:23 | 显示全部楼层
因为你定义的函数,就算条件不成立也会返回None值,最好的方法就是像楼上这种
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-24 22:13:14 | 显示全部楼层
帮你补全自定义函数体
  1. def fun1(i):
  2.     if not (i % 3):
  3.         return i
  4.     else:
  5.         return None
复制代码

所以,None出现的原因是因为对返回None值没有进行限制,或在调用的时候没有进行处理,解决办法参考楼上各位的答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-6-24 22:13:55 | 显示全部楼层
cx7154 发表于 2019-6-24 21:40
list=[]
for i in range(100):
    if i%3==0:

这种方式我写出来了,我现在要DEF 那种方式
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-6-24 22:15:34 | 显示全部楼层

定义函数后,不借助其它函数,就真的实现不了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-6-24 22:17:27 | 显示全部楼层
newu 发表于 2019-6-24 21:45
因为你定义的函数,就算条件不成立也会返回None值,最好的方法就是像楼上这种

对的,我目的就是要把None 去掉,而且不能再使用函数了。 小甲鱼的作业里用了 列表推导式和 filter加lambda的方式,我想转化成自定义函数去尝试求解。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-25 19:07:43 | 显示全部楼层
  if not (i%3):
这句里面你都没有判断条件,(i % 3)这是指i除以3的余数是多少,你要加一个余数等于0或者是其他值才行吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-6-25 19:28:52 | 显示全部楼层
wmt1996 发表于 2019-6-25 19:07
if not (i%3):
这句里面你都没有判断条件,(i % 3)这是指i除以3的余数是多少,你要加一个余数等于0或 ...

我刚开始,和你想法一样,为什么他们不加条件。后来思考后,反应过来,if 后面跟的是True,3%3==0 为True, not (3%3) 也是True。你可以敲代码进去尝试
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-25 23:29:29 | 显示全部楼层
stealer 发表于 2019-6-25 19:28
我刚开始,和你想法一样,为什么他们不加条件。后来思考后,反应过来,if 后面跟的是True,3%3==0 为True ...

刚刚看到他们的回复了 反应过来是我错了哈哈哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-17 03:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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