当“if”条件不是m时,无法执行“else”语句

2024-09-20 22:52:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试打印基于2个用户输入数字的数字。如果第一个小于第二个,则从小到大打印。如果第一个大于第二个,则从大到小打印。你知道吗

if&else语句中的两个语句都已测试为包含正确的逻辑。但是,只有if语句有效,但是当else条件被测试时,系统无法执行else语句。你知道吗

def question1c():
    firstNum = int(input("Enter first number: "))
    secondNum = int(input("Enter second number: "))
    if firstNum < secondNum: 
        for n in range(firstNum, secondNum + 1):
            print(n)
    else: 
        for n in range(secondNum, firstNum - 1, -1):
            print(n)
question1c()

场景1:

Enter first number: 10
Enter second number: 12
10
11
12

场景2:

Enter first number: 12
Enter second number: 10
12
11
10

情景2的实际结果:

Enter first number: 12
Enter second number: 10 <-- fails to execute else statements

Tags: innumberforinputif数字语句else
2条回答

你的问题是当firstNum = 12secondNum = 10时,else执行正常(因为12 >= 10),但是你的range是:

range(10, 11, -1)

所以循环根本不执行,什么也不打印(因为您正试图从1011)。你知道吗

如您所见,您需要将range更改为:

range(firstNum, secondNum - 1, -1)

或者,您可以消除这些条件并在一个range中使用方向:

firstNum = int(input("Enter first number: "))
secondNum = int(input("Enter second number: "))

direction = 1 if firstNum < secondNum else -1

for n in range(firstNum, secondNum + direction, direction):
    print(n)

secondNum比firstNum小,所以不能向下。换一下。你知道吗

else: 
    for n in range(firstNumNum, secondNum - 1, -1):
        print(n)

相关问题 更多 >

    热门问题