input()将一个答案链接到另一个答案

时间:2019-02-25 05:06:08

标签: python input

当我输入A来响应以下python代码时

def Choice():
    d1 = input(*question*)
    if d1 == 'A':
        print(*response*)

    if d1 == 'B':
        print(*response*)

    else:
        print(*response*)
        Choice()

我得到了A的响应,但是我也得到了'else:'语句的响应。但是,当我输入B作为响应时,我得到的答案没有对'else:'语句的响应。

有人知道发生了什么吗?

2 个答案:

答案 0 :(得分:0)

您应该使用elif

def Choice():
    d1 = input(*question*)
    if d1 == 'A':
        print(*response*)

    elif d1 == 'B':
        print(*response*)

    else:
        print(*response*)
        Choice()

如果您的代码是d1 == 'A',则发生什么情况;如果是d1 !='B',它将转到下一个,因此它将到达else并为'A'和else条件打印语句。

如果使用elif,如果d1不是'A'或'B',则只有d1会处于其他条件

答案 1 :(得分:0)

在您的代码中,您使用的是if else语句,else链接到最近的 if语句。 因此,代码中发生的事情是,每当您输入“ A”作为输入时,将执行第一个if语句,然后检查条件是否为 false 的另一个if语句以及相应的else被执行。

但是输入'B'并非如此。如果在第一个if之后写另一个语句,则会发生相同的情况,因为在else之后没有if语句,它将转到另一个成立的if语句。

要进行反击,可以使用if elif else概念。

您可以关注Nihal所做的事情。