【发布时间】:2020-03-27 02:00:18
【问题描述】:
编写一个函数 div_3_5(start, end) 来计算从 start 到的整数个数,但不包括使用 while 循环可被 3 或 5 整除的 end。
注意:在这个练习中,我必须在函数内使用 while 循环(我知道 for 循环是最好的)。
示例: div_3_5(7, 27) 计算结果为 9(在该范围内可被 3 或 5 整除的数字:9,10,12,15,18,20,21,24,25)
我真的不明白我为什么或在做什么,有人可以解释我哪里出错了。 到目前为止,这是我的代码:
count = 0
def div_3_5(start, end):
while start < end:
if start%3 == 0 or start%5 == 0:
count + 1
start = start + 1
start + 1
return count
这显然不完整或不正确,我得到的当前错误是:
预期输出:
div_3_5(7, 27) -> 9
测试结果:0 != 9
【问题讨论】:
-
您在 while 循环之外增加 start 。所以循环开始/结束值永远不会改变,这意味着它将永远循环。看看列表理解。在不为您解决问题的情况下考虑类似
[v for v in range(start, end+1) if True]。将 True 更改为为所需 v 生成 True 的函数,您将获得解决方案。
标签: python while-loop