2015-07-11 3 views
0
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, он просто сравнивается с условием и игнорирует два других угла. Пожалуйста, помогите мне с этим!Как сравнить более двух условий в python

ответ

0

Я думаю, что вы должны сравнить каждый отдельный угол, как этот

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

же для других условий. Но я думаю, что вы должны использовать или вместо и в операторах if. Потому что, когда угол равен 180, все три угла могут быть меньше 90, и вы просто хотите проверить, если один из трех углов меньше 90. с и все условия должны быть истинными.

+0

Благодарим вас это работает отлично. – Isaac

1

Вы можете использовать функции any и all.

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() 

EDIT: Некоторые комментарии для начинающих Python:

Первая линия, я использовал лямбда-выражение, которое является функцией одной строки. В выражении лямбда я использовал понимание списка (компактный способ построения списка).

Таким образом, ask() возвращает список, содержащий 3 угла, например. [90, 45, 45].

Вы можете найти информацию о sum(), any() и all()here.

+0

Некоторые из ваших функций новы для меня, которые я не могу использовать, потому что я еще не изучил его, но спасибо за помощь мне в любом случае. – Isaac

+0

@ Исаак Ок, я понимаю. Есть полезные встроенные функции. Это повод учиться! – clemtoy

Смежные вопросы