萌新求助
萌新求助。为啥这个else和if对齐做出来就会有重复,往前缩进一个就不正常。{:10_266:}{:10_266:}老甲鱼讲的我没理解>>> for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, "=", x, "*", n // x)
break
else:
print(n, "是一个素数")
3 是一个素数
4 = 2 * 2
5 是一个素数
5 是一个素数
5 是一个素数
6 = 2 * 3
7 是一个素数
7 是一个素数
7 是一个素数
7 是一个素数
7 是一个素数
8 = 2 * 4
9 是一个素数
9 = 3 * 3
这个问题是因为else语句的位置不对导致的。在这个代码块中,else语句是与for循环对齐的,所以它会在内层循环的每次迭代结束后都执行一次。这不是我们想要的结果。
正确的做法是将else语句与if语句对齐,这样它就只会在内层循环完全迭代后才会执行。修改后的代码如下:
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, "=", x, "*", n // x)
break
else:
print(n, "是一个素数")
输出结果为:
2 是一个素数
3 是一个素数
4 = 2 * 2
5 是一个素数
6 = 2 * 3
7 是一个素数
8 = 2 * 4
9 = 3 * 3
这样就可以正确地输出素数和合数了。 说错了,是往前缩进一个就正常了 isdkz 发表于 2023-9-21 20:01
这个问题是因为else语句的位置不对导致的。在这个代码块中,else语句是与for循环对齐的,所以它会在内层循 ...
else应该是和for对齐吧 RichY-YikO 发表于 2023-9-21 20:06
else应该是和for对齐吧
就是要和内层的for对齐呀 isdkz 发表于 2023-9-21 20:07
就是要和内层的for对齐呀
那为啥5的时候执行了三次,7的时候执行了5次 RichY-YikO 发表于 2023-9-21 20:10
那为啥5的时候执行了三次,7的时候执行了5次
你那个 else 跟 if 同级了呀 isdkz 发表于 2023-9-21 20:30
你那个 else 跟 if 同级了呀
嗯嗯,懂了。谢谢大佬
页:
[1]