2014-11-08 3 views
0

мне было интересно, если вы можете сделать что-то вроде следующего:вложенными, если другого заявления в питона

if(condition): 
    if(condition: 
     if(condition): 
      print("some text") 
     else: 
      print("some more text") 
    else: 
     print("text") 
else: 
    print("Text") 

Мой главный вопрос заключается в том, что я получаю сообщение об ошибке при попытке запустить несколько вложенных если заявления?

Благодаря

+0

Это все очень легальный питон, за исключением вашего второго 'if', который не имеет закрывающего пара. –

+1

Вам не хватает ')' на одном из ваших условий. – 101

+3

Для начала вам не нужны скобки. – kindall

ответ

2

Я призываю вас, чтобы сгладить свой код, вложенный если реальны боли в спине для debbuging и поддержания вашего кода. Вы можете переписать это так:

if condition1 and condition2 and condition3: 
    print("some text") 
elif condition1 and condition2 and not condition3: 
    print("some more text") 
elif condition1 and not contition2: 
    print("text") 
else: 
    print("Text") 

Это может показаться слишком многословно, но делает его гораздо легче увидеть, если у вас есть все важные дела охвачены.

+0

Хотя я действительно задумываюсь об исполнении штрафа за это. В коде OP каждая ветвь не должна быть проверена несколько раз, тогда как здесь каждое условие нужно будет тестировать несколько раз. – therealrootuser

+0

Если условие является дорогостоящим, вы можете назначить результат для bool, что обычно также помогает в удобочитаемости. И время процессора обычно намного дешевле, чем часы разработчиков. Хорошо помнить о производительности, но обычно есть более важные соображения ... Если вы не найдете узкое место, читаемость и ремонтопригодность превосходят микротипы. –

+0

@ mattingly890 преждевременная оптимизация - это корень всего зла. В большинстве случаев стоимость будет минимальной. –

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