如何打印能被3和5整除的0到100之间的数字?

4

我是一个新手程序员,正在做与Python相关的练习,在遇到了一个问题,需要打印所有可被3和5整除的数字。

我知道这与使用范围的for循环有些相关,但我无法想出解决方法。

我尝试寻找解决方案,但那些方案超出了我的理解范围。

for number in range (0, 100, 3):
    j = number / 5
    print (j)

我尝试了这样的方式,但是答案是小数。


1
你想打印出0到100之间的某个子集,因此你的打印语句应该只是 print(number)。那么问题就变成了你想要打印哪些数字,哪些数字你想要跳过,这就需要一个或多个 if 语句来解决。 - Scott Hunter
5个回答

2

你可以尝试取模运算符“%”,它返回除法的小数部分(余数)。

最初的回答
for i in range(100): # Numbers between 0 and 100
    if i % 3 == 0 and i % 5 == 0:
        # If i is divisible by 3 and i is also divisible by 5 then print it
        print(i)

1
一种优化方法是,能同时被3和5整除的数字必须以05结尾,因此我们可以迭代使用step=5,并仅检查数字是否被3整除:
print([n for n in range(0, 100, 5) if not n % 3])

输出:

[0, 15, 30, 45, 60, 75, 90]

编辑:3和5没有公共因数,因此迭代步长为15即可:

print([n for n in range(0, 100, 15)])

输出:

[0, 15, 30, 45, 60, 75, 90]

0
for number in range(100):
    if (number % 5 == 0) and (number % 3 == 0):
        print(number)

0
你需要在那段代码中加入一个if语句和一些小的调整。我认为你不需要for循环中的第三个参数,因为那会改变增量。%或取余操作是求余数。所以如果求余操作的结果为0,我们就知道那个数可以被除数整除。我们使用and语句来确保这个数能被3和5整除。
for number in range (0, 100):
    if (number % 15 == 0):
        print (number)

3和5没有公共因数,所以这可以归结为number % 15 == 0 - Adrian W
好的点子。这可能会导致性能略微提升。谢谢。 - griffin_cosgrove

0

最简单的方法:

print([n for n in range(0, 100, 5) if not n % 3])

1
“print([n for n in range(0,100,15)])”更简单,而且效果是一样的。 - Adrian W
@AdrianW 你说得对 <3 - hmn Falahi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接