如何在python中比较2个以上的条件

时间:2015-07-11 06:25:32

标签: python-3.x

angle1 = int(input('Please enter the 1st angle:'))
angle2 = int(input('please enter the 2nd angle:'))
angle3 = int(input('please enter the 3rd angle:'))
Angle = angle1 + angle2 + angle3
while Angle == 180:
    if angle1 and angle2 and angle3 < 90:
        print ('this an actue triangle')

    elif angle1 or angle2 or angle3 == 90:
        print ('this is a right triangle')

    elif angle1 or angle2 or angle3 > 90: 
        print ('this is an obtuse triangle')

    Angle = angle1 + angle2 + angle3    
    angle1 = int(input('Please enter the 1st angle:'))
    angle2 = int(input('please enter the 2nd angle:'))
    angle3 = int(input('please enter the 3rd angle:'))

我试图将每个角度与条件进行比较,但只要我在angle3中输入数字,它就会与条件进行比较并忽略另外两个角度。请在这件事上给予我帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用let () = try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH") with Not_found -> () ;; #use "topfind";; any功能。

all

编辑: Python初学者的一些评论:

第一行,我使用了一个lambda表达式,它是一个单行函数。在lambda表达式中,我使用了list comprehension(一种构建列表的简洁方法)。

所以ask = lambda: [int(input('Please enter the {0}st angle:'.format(i))) for i in range(1,4)] angles = ask() while sum(angles) == 180: if all(a < 90 for a in angles): print ('this an actue triangle') elif any(a == 90 for a in angles): print ('this is a right triangle') elif any(a > 90 for a in angles): print ('this is an obtuse triangle') angles = ask() 返回一个包含3个角度的列表,例如ask()

您可以找到有关[90, 45, 45]sum()any() here的信息。

答案 1 :(得分:0)

我认为你必须像这样比较每个角度

if (angle1 < 90) and (angle2 < 90) and (angle3 < 90)

其他条件相同。但我认为你必须使用或代替if语句。因为当Angle为180时,所有三个角度都不能小于90,你只想测试三个角度中的一个是否小于90.并且所有条件都必须为真。