python - 如何在 Python 中以更有效的方式编写所有这些逻辑语句?
问题描述
i = 20
while (i%2!= 0 or i%3!= 0 or i % 4 != 0 or i % 5 != 0 or
i % 6 != 0 or i % 7 != 0 or i % 8 != 0 or i % 9 != 0 or
i % 10 != 0 or i % 11 != 0 or i % 12 != 0 or i % 13 != 0 or
i % 14 != 0 or i % 15 != 0 or i % 16 != 0 or i % 17 != 0 or
i % 18 != 0 or i % 19 != 0 or i % 20 != 0):
i+=20
print(i)
我想找到从 1 到 20 的数字的 LCM。这段代码本身是有效的(比替代代码更快),但是有什么方法可以让计算机识别模式并相应地做出所有逻辑语句?
解决方案
您可以使用any
:
while any(i % j != 0 for j in range(2, 21)):
推荐阅读
- python - 如何识别在 Selenium 中动态加载 JavaScript 文件的调用堆栈?
- asp.net-mvc - Web 服务获取 URL 用户来自
- flutter - 离开焦点时更改 TextFormField 的值
- java - Intellij 中的 Spring Boot 应用程序:调试时间比运行时间长 10 倍
- android - Firemonkey外部异常与Android上的线程和记录
- java - 将图像渲染到 JPanel
- python - 我们是否在每个单元测试文件中都需要`if __name__ == '__main__': unittest.main()`?
- swift - 状态栏应用程序未正确显示文件选择器
- android - 使用 debugImplementation 'androidx.fragment:fragment-testing:1.3.3' 时,Android'无法解析导航 xml 中的符号'@anim/...'
- python - 是否可以使用 openpyxl 将图表模板应用于 Excel 图表?