Python 中的 else 和 if 语句可以不在同一层级吗?
python中的else和if是否必须处于同一层级?
在判断素数的代码中,else和if语句看起来不在同一层级:
for num in range(10, 20): for i in range(2, num): if num % i == 0: print("%d 是素数" % num) break else: print("%d 是合数" % num)
但实际情况并非如此。else语句实际上与内层for循环相匹配,而非与if语句。
举个例子,当判断10是否为素数时,内层循环会依次判断10是否能被2、3、4、...、9整除。由于没有找到能整除10的数,内层循环结束,执行else语句,打印"10是合数"。
立即学习“Python免费学习笔记(深入)”;
也就是说,else语句的作用是当内层循环完全执行结束后且没有被if语句中断时执行。因此,else和if语句可以不在同一层级,但else语句实际上是内层循环的结束条件。