![](/img/trans.png)
[英]How to print numbers from range but exclude a number by a given divisible number
[英]I want to exclude all numbers that aren't divisible by 7 and that are not multiples of 5 in a range of numbers from (0,300)
基本上我必须得到一个可以被 7 整除但不能被 5 的倍数整除的数字列表。但是由于某种原因,当我设置条件时,它告诉我我有错误。
for i in [x for x in xrange(0,100) if x%7 ==0 and if x%5 !=0 ]:
print i
我知道你按照列表理解的方式发布了一些东西,但它有点难以阅读。 所以有几件事...
因此,考虑到这一点,您基本上是在寻找 0-300 之间可以被 7 整除但不是 5 的倍数的任何数字。
意味着我们有一些事情......
所以让我们一行一行地看
for i in range(0,301):
好的,现在您不需要像示例中那样的嵌套 for 循环列表理解。 现在,您需要知道“如果” i 是____...所以我们需要一个 if 语句。
if i%7==0 and i%5!=0:
看到逻辑了吗? 当然,if 语句在我们的 for 循环内,以循环我们范围内的所有值。
最后,如果我们的“i”符合我们的标准,那么我们可以打印所有值。
print(i)
所以,我们的最终代码看起来像......
for i in range(0,301):
if (i % 7 == 0) and (i % 5 != 0):
print(i)
当然,有一些方法可以使这更优雅,但这是总体思路。
列表理解:
party = [i for i in range(0,301) if i%7==0 and i%5!=0]
print(party)
将它们全部存储在一个列表中,以便您可以随时访问它们。 或者您当然可以在不分配的情况下打印它。
编辑:标题和你在正文中所说的有点矛盾。 阅读完我自己的答案后,我不完全确定这是否是您要查找的内容,但这就是我遇到的情况。 希望能帮助到你!
您的列表理解不正确。 它应该类似于:
[x for x in xrange(100) if x%5 and not x%7]
更好(更有效)将类似于
[x for x in xrange (7, 100, 7) if x%5]
更好的是......不,我们现在就到此为止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.