Python中while循环的else分支失效问题求助
问题分析
你这段代码的问题出在else分支的逻辑上——Python里while的else块只会在while循环正常结束(即条件变为False时)执行一次,而不是循环执行。所以当num1 <= num2时,它只会打印一次num1然后加1,不会持续打印到num2,这就是你觉得else分支没工作的原因。
修复方案
方案1:先统一起始和结束值(推荐)
不用纠结输入的两个数谁大谁小,先直接找出最小值和最大值,然后从最小值开始循环打印到最大值,逻辑更简洁:
num1 = int(input('enter first number')) num2 = int(input('enter second number')) start = min(num1, num2) end = max(num1, num2) while start <= end: print(start) start += 1
方案2:拆分两种情况的循环
如果想保留原来的判断逻辑,把else换成另一个while循环,分别处理num1 > num2和num1 <= num2的情况:
num1 = int(input('enter first number')) num2 = int(input('enter second number')) if num1 > num2: while num1 > num2: print(num2) num2 += 1 else: while num1 <= num2: print(num1) num1 += 1
这样两种情况都会循环打印,直到达到较大的数字。
内容的提问来源于stack exchange,提问作者shahar cohen
相关产品推荐
相关产品推荐

