打印从 1 到 100 的数字并跳过可被 3 或 5 整除的数字。缩进错误返回两个值
Printing the numbers from 1 to 100 and skipping the numbers divisible by 3 or 5. An indentation mistake returning two values
我想打印从 1 到 100 的数字并跳过可被 3 或 5 整除的数字。我犯了一个缩进错误,我得到了两个值。这是什么逻辑?
代码如下:
i = 1
while i<=100:
if not(i%3==0 or i%5==0):
print(i,end=" ")
i=i+1 ***indentation mistake***
@Thymen 已经在评论中解释得很好,但基本上 if not (i%3==0 or i%5==0):
意味着如果数字可以被 3 或 5 整除,那么 if
块中的代码当然会不被执行。这意味着一旦 i=3
,if
块将被跳过并且 while 循环将继续,而不会增加 i
,这将导致无限循环。
作为旁注,我会用 continue
语句来写这篇文章,这样你就可以清楚地知道你在做什么:
i = 0
while i < 100:
i += 1
if not i % 3 or not i % 5:
continue
print(i, end=" ")
我想打印从 1 到 100 的数字并跳过可被 3 或 5 整除的数字。我犯了一个缩进错误,我得到了两个值。这是什么逻辑?
代码如下:
i = 1
while i<=100:
if not(i%3==0 or i%5==0):
print(i,end=" ")
i=i+1 ***indentation mistake***
@Thymen 已经在评论中解释得很好,但基本上 if not (i%3==0 or i%5==0):
意味着如果数字可以被 3 或 5 整除,那么 if
块中的代码当然会不被执行。这意味着一旦 i=3
,if
块将被跳过并且 while 循环将继续,而不会增加 i
,这将导致无限循环。
作为旁注,我会用 continue
语句来写这篇文章,这样你就可以清楚地知道你在做什么:
i = 0
while i < 100:
i += 1
if not i % 3 or not i % 5:
continue
print(i, end=" ")