在python中使用“!=”时需要帮助

时间:2019-06-05 11:00:55

标签: python

我正在解决老师提出的测验问题。他告诉我写一个代码来打印数字1到100,不包括被3和5整除的数字不包括 因此,我编写了代码:

i = 1
while i <= 100:
    if i % 3 != 0 or i % 5 != 0:
        print(i)
    i = i + 1

结果:1,2,3,4,5,6,7,8,.............,98,99,100

然后我尝试:

i = 1
while i <= 100:
    if i % 3 == 0 or i % 5 == 0:
        print(i)
    i = i + 1

结果:

3
5
6
9
10
12
15
18
20
21
24
25
27
30
33
35
36
39
40
42
45
48
50
51
54
55
57
60
63
65
66
69
70
72
75
78
80
81
84
85
87
90
93
95
96
99
100

为什么会这样?

2 个答案:

答案 0 :(得分:2)

您应该在第一条语句中将or更改为and,因为您希望数字3和5的残差都不为零

答案 1 :(得分:0)

第一个示例中的or应当替换为and。因此,您的最终代码应如下所示:

i = 1
while i <= 100:
    if i % 3 != 0 and i % 5 != 0:
        print(i)
    i = i + 1

或者您甚至可以取消两行。可能的奖励积分,更不用说看起来更整洁了。

for i in range(1,101):
    if i % 3 != 0 and i % 5 != 0:
        print(i)