python - near_ten() 在 Codingbat 上似乎有一个错误
问题描述
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 示例时,我会得到不同的结果
我在 SO 上搜索并找到了 UltraInstinct 的答案,该答案适用于 Python near_ten 函数/方法
解决方案
您提供的解决方案确实是错误的,根本不起作用。看一下第一项((num/10)*10)
:这评估为 just num
。这意味着对于所有大于 9 的整数,您的结果num % num
将始终为 0。此外,由于此代码使用正常除法,它会将所有项转换为浮点数。
您提供的第二个解决方案是正确的,因为您只需要第一个非十进制数字。
推荐阅读
- wordpress - Dockerfile:尽管使用了`COPY --chown=`,但目录所有权问题
- ebpf - 在内核空间中使用 eBPF map 进行比较
- alexa - 如何调试 sef-hosted 的 alexa 技能?
- typo3 - 可以一键打开TYPO3中的页面树吗?
- javascript - WebRTC 的 Youtube 直播 API
- typescript - 联合中不存在 Typescript 属性
- javascript - p5 js 输入在移动设备上不起作用
- matlab - 如何在MATLAB中找到字符实体
- java - Spark Streaming 在应用程序 UI 上不显示任何记录
- xcode - 是否有使用 IDEA 的 VLOOKUP 功能?