我正在解决老师提出的测验问题。他告诉我写一个代码来打印数字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
为什么会这样?
答案 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)