有没有更惯用的方法来完成Python3中的以下内容?
if i%1 == 0 and i%2 == 0 and i%3 == 0 and i%4 == 0 and i%5 == 0 and i%6 == 0 and i%7 == 0 and i%8 == 0 and i%9 == 0 and i%10 == 0 and i%11 == 0 and i%12 == 0 and i%13 == 0 and i%14 == 0 and i%15 == 0 and i%16 == 0 and i%17 == 0 and i%18 == 0 and i%19 == 0 and i%20 == 0:
Run Code Online (Sandbox Code Playgroud)
我试图找到最小的正数,它可以被1到20之间的所有数字整除.我不是在寻找新的解决方案.我正在寻找一种更简洁的方式来表达我上面所做的事情.
if all(i % j == 0 for j in range(1, 21)): # python2 -> xrange(2, 21)
# do whatever
Run Code Online (Sandbox Code Playgroud)
如果全部i % j == 0,它将返回True否则它将短路并返回False,如果有任何余数i % j.此外,检查if i % 1是多余的,因此您可以从2开始.
或者conversly,检查是否有没有 任何 i % j一个余数.
if not any(i % j for j in range(2, 21)):
Run Code Online (Sandbox Code Playgroud)
或者如果你喜欢功能:
if not any(map(i.__mod__, range(2, 21)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |