Python с нуля – часть 4: управляющие конструкции – операторы IF…ELIF…ELSE

 

PythonСтруктура управляющей конструкции ( или “принятия решения“) требует, что бы программист задал одно или более условий, которые будут выполнены и проверены программой и одного или нескольких действий, которые будут выполнены если условие будет определено как истина (true) и, опционально, другие выражения, которые будут выполнены если условие будет определено как ложь (false).

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

decision_making

Язык программирования Python предполагает любое не равное нулю или не пустое значение как истину (true), и наоборот – если значение будет пустым или равно нулю – то оно будет считаться ложью (false).

В Python имеются такие типы операторов для этой конструкции:

Statement Description
if statements An if statement consists of a boolean expression followed by one or more statements.
if…else statements An if statement can be followed by an optional else statement, which executes when the boolean expression is false.
nested if statements You can use one if or else if statement inside another if or else if statement(s).

Одиночные наборы условий

Если набор if состоит только из одной линии – он может продолжаться на той же линии, являясь как бы заголовком выражения.

Вот пример такого такого однострочного выражения:

var = 100
if ( var  == 100 ) : print "Value of expression is 100"
print "Good bye!"

When the above code is executed, it produces the following result:
Value of expression is 100
Good bye!

Оператор IF

Оператор if в Python подобен этому оператору в других языках. Утверждение с использованием оператора if содержит в себе логическое условие, в котором производится сравнение данных и по результату выбирается дальнейшее действие.

Ситаксис

Синтаксис оператора if в Python-е такой:

if условие:
   действие(s)

Если логическое условие является истиной (true), тогда блок действия в выражении будет выполнен. Если условие считается ложью (false) – тогда будет выполнен следующий блок кода после этого выражения.

if_statement

 

Пример

var1 = 100
if var1:
   print "1 - Got a true expression value"
   print var1

var2 = 0
if var2:
   print "2 - Got a true expression value"
   print var2
print "Good bye!"

 

Когда этот код будет выполнен – он приведёт к такому результату:

1 - Got a true expression value
100
Good bye!

Операторы IF…ELIF…ELSE

Оператор else может использоваться вместе с оператором if. Оператор else содержит блок кода, который будет выполнен если результат выражения равен нулю или считается ложью.

Это опциональный оператор, и он может быть только один во всем выражении после if.

Ситаксис

if условие:
   действие(я)
else:
   действие(я)

if_else_statement

Пример

var1 = 100
if var1:
   print "1 - Got a true expression value"
   print var1
else:
   print "1 - Got a false expression value"
   print var1

var2 = 0
if var2:
   print "2 - Got a true expression value"
   print var2
else:
   print "2 - Got a false expression value"
   print var2

print "Good bye!"

Результат выполнения:

1 - Got a true expression value
100
2 - Got a false expression value
0
Good bye!

Оператор elif

Оператор elif позволяет выполнять множественную проверку выражения и выполнять блок кода, как только результат будет считаться истиной.

Как и оператор else, elif опционален, однако в отличии от else он может использоваться многократно.

Синтаксис

if условие:
   действие(я)
elif условие2:
   действие(я)
elif условие3:
   действие(я)
else:
   действие(я)

В Python нет таких операторов как switch или case, но можно использовать операторы if..elif... вместо них.

Пример

var = 100
if var == 200:
   print "1 - Got a true expression value"
   print var
elif var == 150:
   print "2 - Got a true expression value"
   print var
elif var == 100:
   print "3 - Got a true expression value"
   print var
else:
   print "4 - Got a false expression value"
   print var

print "Good bye!"

При выполнении этого кода – будет получен такой результат:

3 - Got a true expression value
100
Good bye!

Вложенные конструкции IF

Бывают случаи, когда вы хотите провести ещё одну проверку после того, как результат выражения принят как истина. В таком случае – можно использовать вложенные управляющие конструкции if.

Во вложенной конструкции, вы можете добавлять if..elif...else внутри другой такой же конструкции.

Ситаксис

if условие1:
   действие(я)
   if условие2:
      действие(я)
   elif условие3:
      действие(я)
   else
      действие(я)
elif условие4:
   statement(s)
else:
   statement(s)

Пример

var = 100
if var < 200:
   print "Expression value is less than 200"
   if var == 150:
      print "Which is 150"
   elif var == 100:
      print "Which is 100"
   elif var == 50:
      print "Which is 50"
elif var < 50:
   print "Expression value is less than 50"
else:
   print "Could not find true expression"

print "Good bye!"

Результат его выполнения:

Expression value is less than 200
Which is 100
Good bye!

 


  • Олег
     

    http://pastebin.com/P1hiXA6h

    здрасьте, не работает. сразу перескакивает на else

    может установилось криво или чего-то не хватает?

    подозрительно пишет такое:
    Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32

    хотя у меня х64 и скачивал я х86-64

  • Polyanskiy Ilya
     

    чем отличается
    if (var == 100):
    от
    if var == 100:
    ?
    Для чего применяются скобки если можно без них?