为什么IF和Else语句不能在Python中工作?Python只是忽略了Else语句

为什么IF和Else语句不能在Python中工作?Python只是忽略了Else语句,python,if-statement,Python,If Statement,因此,我试图将斜边定理编码为python,出于某种原因,即使我在请求字母h时键入字母k,它仍会继续,就好像我输入了h一样,尽管这会让我再次尝试 print ("H for hypotenuse") typ = input(":") if typ == "H" or "h" or "Hypotenuse" or "hypotenuse": print ("What Side are you missing?") print("A for The leg, B for the bas

因此,我试图将斜边定理编码为python,出于某种原因,即使我在请求字母h时键入字母k,它仍会继续,就好像我输入了h一样,尽管这会让我再次尝试

print ("H for hypotenuse")
typ = input(":")
if typ == "H" or "h" or "Hypotenuse" or "hypotenuse":
    print ("What Side are you missing?")
    print("A for The leg, B for the base, C for The longest side")
    side=(input(":"))
    if side == "A" or "B" or "a" or "b":
        if side == "A" or "a":
            print("What is B?")
            b = int(input(":"))
            print("What is C?")
            c = int(input(":"))
            a = int((c*c)-(b*b))
            a1 = (a/a)
            print("A is ", a1)
        else:
            print("What is A?")
            a = input(":")
            print("What is C?")
            c = input(":")
            b = (c*c)-(a*a)
            b1 = b/b
            print("B is ", b1)

    else:
        print("What is A?")
        a = input(":")
        print("What is B?")
        b = input(":")
        c = (a*a)+(b*b)
        c1 = c/c
        print("C is ", c1)
else:
    print ("Please try again")
如果类型==“H”或“H”或“斜边”或“斜边”
如果边==“A”或“B”或“A”或“B”
如果边==“A”或“A”
并不是你认为的意思。相反,您希望在{H”,“H”,“斜边”,“斜边”}中执行
if type,在{A”,“B”,“A”,“B}
中执行
if side,在{A”,“A}中执行
if side


旁注:您可以使用
elif
来简化代码,而不是嵌套“a”和“a”的重复检查。

您的if逻辑有问题,我认为您应该这样编写。如果side='A'或side='B'或side='A'或side='B',等等,由于运算符的优先级,您有
if(side='A')或“A”:
由于
“A”
将计算为非false,因此您有
if(side='A')或True:
任何
语句,其中至少有一个
True
计算为True。因此,您的整个语句可以重写为
,如果为True: