编写一个 Python 程序,在不使用“for 循环”的情况下查找 120 到 200 之间可被 7 和 5 的倍数整除的数字。
我试图以这种方式解决…
x = range(120, 200)
if x % 7 == 0 and x % 5 == 0:
print(x)
但是我确实收到了这个错误。我会错过什么?
Traceback (most recent call last):
File "C:\Users\User\Desktop\skillshare-code\if else statements\4.py", line
11, in <module>
if x % 7 == 0 and x % 5 == 0:
TypeError: unsupported operand type(s) for %: 'range' and 'int'
原文由 Nelson M 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于您不允许使用
for
构造,您可以使用filter
方法完成此操作:请注意,问题不是要求您打印数字,而是“查找”它们,这意味着创建某种形式的列表或有效值的集合
PS:我做了
x % 35 == 0
因为“除以”和“倍数”意味着同一件事,所以 35 来自7*5
。PPS:
filter
返回一个过滤器对象,它是一个生成器。如果您想通过执行list(valid_nums)
查看列表,则需要将其转换为列表。如果您只需要遍历值并将它们用于其他用途,则不需要进行转换,因为生成器可以很好地工作