【发布时间】:2021-12-01 08:02:24
【问题描述】:
Codingbat 有一道练习题 Under Logic-1, Python。它被称为 near_10。
给定一个非负数“num”,如果 num 在 10 的倍数的 2 以内,则返回 True。注意:(a % b) 是 a 除以 b 的余数,所以 (7 % 5) 是 2
一位用户的 GitHub 上的解决方案如下所示
def near_ten(num):
within = num%((num/10)*10) if num >= 10 else num
return within in [8,9,0,1,2]
这被接受为代码检查表中包含的所有示例的正确答案
但是,在 Jupyter Notebook 中,当我在函数 near_ten() 中传递上表中的 False 示例时,我会得到不同的结果
我在 S.O. 上搜索过这里。并通过 UltraInstinct 找到了一个有效的答案 Python near_ten function/method
【问题讨论】:
-
是的,这个解决方案是无稽之谈,
10 * (num / 10)什么都不做,只是将num作为float返回。由于num保证为非负数,因此您实际上只需要num % 10。 -
"
It is more an issue of a website having a faulty code check for a solution which beginning coders use to train for technical interviews. This question thereby helps the development community and should be reopened in my opinion." - 这仍然不适合 SO,将错误报告给 Codingbat 本身,我们对他们网站上的错误无能为力,可以吗? -
我联系了 Codingbat。新程序员应该注意这个问题。他们中的大多数人主要搜索 SO。所以你认为不合适的意见就是,你的意见@h4z3
-
你是对的,他们去了 SO,但正如我所指出的,这不是从其他网站报告问题的地方 + 那里没有真正的问题,你只是说“有一个错误" 就是这样
-
问题不仅仅是 GitHub 存储库上的答案中的拼写错误,正如关闭此问题的原因所暗示的那样。它可以随时复制,只需尝试 Codingbat 练习即可。所以结束这个问题的两个原因是错误的。这是一个网站对解决方案的代码检查错误的问题,初学者使用该解决方案来培训技术面试。我联系了 Codingbat 并没有收到任何回复。因此,这个问题有助于开发社区,我认为应该重新提出。
标签: python list function set modulo