Оператор выбора в python (if else)

Условия¶

Конструкция if построена на условиях: после if и elif всегда пишется условие.
Блоки if/elif выполняются только когда условие возвращает True, поэтому первое с чем надо
разобраться — это что является истинным, а что ложным в Python.

True и False

В Python, кроме очевидных значений True и False, всем остальным объектам также
соответствует ложное или истинное значение:

  • истинное значение:
    • любое ненулевое число
    • любая непустая строка
    • любой непустой объект
  • ложное значение:
    • None
    • пустая строка
    • пустой объект

Например, так как пустой список это ложное значение, проверить, пустой ли список,
можно таким образом:

In 12]: list_to_test = 1, 2, 3

In 13]: if list_to_test
   ....     print("В списке есть объекты")
   ....
В списке есть объекты

Тот же результат можно было бы получить несколько иначе:

In 14]: if len(list_to_test) != 
   ....     print("В списке есть объекты")
   ....
В списке есть объекты

Операторы сравнения

Операторы сравнения, которые могут использоваться в условиях:

In 3]: 5 > 6
Out3]: False

In 4]: 5 > 2
Out4]: True

In 5]: 5 < 2
Out5]: False

In 6]: 5 == 2
Out6]: False

In 7]: 5 == 5
Out7]: True

In 8]: 5 >= 5
Out8]: True

In 9]: 5 <= 10
Out9]: True

In 10]: 8 != 10
Out10]: True

Примечание

Обратите внимание, что равенство проверяется двойным. Пример использования операторов сравнения:

Пример использования операторов сравнения:

In 1]: a = 9

In 2]: if a == 10
   ...     print('a равно 10')
   ... elif a < 10
   ...     print('a меньше 10')
   ... else
   ...     print('a больше 10')
   ...
a меньше 10

Оператор in

Оператор позволяет выполнять проверку на наличие элемента в
последовательности (например, элемента в списке или подстроки в строке):

In 8]: 'Fast' in 'FastEthernet'
Out8]: True

In 9]: 'Gigabit' in 'FastEthernet'
Out9]: False

In 10]: vlan = 10, 20, 30, 40

In 11]: 10 in vlan
Out11]: True

In 12]: 50 in vlan
Out12]: False

При использовании со словарями условие in выполняет проверку по
ключам словаря:

In 15]: r1 = {
   ....  'IOS' '15.4',
   ....  'IP' '10.255.0.1',
   ....  'hostname' 'london_r1',
   ....  'location' '21 New Globe Walk',
   ....  'model' '4451',
   ....  'vendor' 'Cisco'}

In 16]: 'IOS' in r1
Out16]: True

In 17]: '4451' in r1
Out17]: False

Условная конструкция if

Последнее обновление: 23.04.2017

Условные конструкции используют условные выражения и в зависимости от их значения направляют выполнение программы по одному из путей.
Одна из таких конструкций — это конструкция if. Она имеет следующее формальное определение:

if логическое_выражение:
	инструкции


В самом простом виде после ключевого слова if идет логическое выражение. И если это логическое выражение возвращает True,
то выполняется последующий блок инструкций, каждая из которых должна начинаться с новой стоки и должна иметь отступы от начала строки:

age = 22
if age > 21:
    print("Доступ разрешен")
print("Завершение работы")

Поскольку в данном случае значение переменной age больше 21, то будет выполняться блок if, а консоль выведет следующие строки:

Доступ разрешен
Завершение работы

Отступ желательно делать в 4 пробела или то количество пробелов, которое кратно 4.

Обратите внимание в коде на последнюю стоку, которая выводит сообщение «Завершение работы». Она не имеет отступов от начала строки, поэтому
она не принадлежит к блоку if и будет выполняться в любом случае, даже если выражение в конструкции if возвратит False

Но если бы мы поставили бы отступы, то она также принадлежала бы к конструкции if:

age = 22
if age > 21:
    print("Доступ разрешен")
    print("Завершение работы")

Если вдруг нам надо определить альтернативное решение на тот случай, если условное выражение возвратит False, то мы можем использовать блок else:

age = 18
if age > 21:
    print("Доступ разрешен")
else:
    print("Доступ запрещен")

Если выражение возвращает True, то выполняется блок if, иначе выполняется блок else.

Если необходимо ввести несколько альтернативных условий, то можно использовать дополнительные блоки elif, после
которого идет блок инструкций.

age = 18
if age >= 21:
    print("Доступ разрешен")
elif age >= 18:
    print("Доступ частично разрешен")
else:
    print("Доступ запрещен")

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

Конструкция if в свою очередь сама может иметь вложенные конструкции if:

age = 18
if age >= 18:
    print("Больше 17")
    if age > 21:
        print("Больше 21")
    else:
        print("От 18 до 21")

Стоит учитывать, что вложенные выражения if также должны начинаться с отступов, а инструкции во вложенных конструкциях также должны иметь отступы. Отступы, расставленные не должным образом,
могут изменить логику программы. Так, предыдущий пример НЕ аналогичен следующему:

age = 18
if age >= 18:
    print("Больше 17")
if age > 21:
    print("Больше 21")
else:
    print("От 18 до 21")

Теперь напишем небольшую программку, которая использует условные конструкции. Данная программка будет представлять собой своего рода обменный пункт:

# Программа Обменный пункт

usd = 57
euro = 60

money = int(input("Введите сумму, которую вы хотите обменять: "))
currency = int(input("Укажите код валюты (доллары - 400, евро - 401): "))

if currency == 400:
    cash = round(money / usd, 2)
    print("Валюта: доллары США")
elif currency == 401:
    cash = round(money / euro, 2)
    print("Валюта: евро")
else:
    cash = 0
    print("Неизвестная валюта")

print("К получению:", cash)

С помощью функции получаем вводимые пользователем данные на консоль. Причем данная функция возвращает данные в виде строки,
поэтому нам надо ее еще привести к целому числу с помощью функции , чтобы введенные данные можно было использовать в арифметических операциях.

Программа подразумевает, что пользователь вводит количество средств, которые надо обменять, и код валюты, на которую надо произвести обмен.
Коды валюты достаточно условны: 400 для долларов и 401 для евро.

С помощью конструкции if проверяем код валюты и делим на соответствующий валютный курс. Так как в процессе деления образуется довольно длинное число с плавающей точкой,
которое может содержать множество знаков после запятой, то оно округляется до двух чисел после запятой с помощью функции .

В завершении на консоль выводится полученное значение. Например, запустим программу и введем какие-нибудь данные:

Введите сумму, которую вы хотите обменять: 20000
Укажите код валюты (доллары - 400, евро - 401): 401
Валюта: евро
К получению: 333.33

НазадВперед

Switch statement

Instead of having a long list of , many programming languages allow you to use a statement.

For instance, in Java you can do this:

switch(argument) {    case :        return "x is zero";    case 1:        return "x is one";    case 2:        return "x is two ";    default:        return "nothing";};

This is a lot cleaner than a long list of cases. But,

Python does not have a switch statement.

Instead you can use a dictionary.

The example below defines a function with a dictionary in it. By calling the function with a parameter, it simulates a switch statement.

>>>   ... def SwitchDemo(argument):...    switcher = {...        : "x is zero",...        1: "x is one",...        2: "x is two",...        3: "x is three",...        4: "x is four",...    }...    return switcher.get(argument, "")... >>> x = 2>>> print(SwitchDemo(x))x is two>>>

This works, but does not let you check greater than , smaller than , greater or equal and other conditions.

In general it’s better to use statements combined with and .

Python if…elif…else Statement

Syntax of if…elif…else

if test expression:
    Body of if
elif test expression:
    Body of elif
else: 
    Body of else

The is short for else if. It allows us to check for multiple expressions.

If the condition for is , it checks the condition of the next block and so on.

If all the conditions are , the body of else is executed.

Only one block among the several blocks is executed according to the condition.

The block can have only one block. But it can have multiple blocks.

Example of if…elif…else

When variable num is positive, Positive number is printed.

If num is equal to 0, Zero is printed.

If num is negative, Negative number is printed.

What is if…else statement in Python?

Decision making is required when we want to execute a code only if a certain condition is satisfied.

The statement is used in Python for decision making.

Python if Statement Syntax

if test expression:
    statement(s)

Here, the program evaluates the and will execute statement(s) only if the test expression is .

If the test expression is , the statement(s) is not executed.

In Python, the body of the statement is indicated by the indentation. The body starts with an indentation and the first unindented line marks the end.

Python interprets non-zero values as . and are interpreted as .

Example: Python if Statement

When you run the program, the output will be:

3 is a positive number
This is always printed
This is also always printed.

In the above example, is the test expression.

The body of is executed only if this evaluates to .

When the variable num is equal to 3, test expression is true and statements inside the body of are executed.

If the variable num is equal to -1, test expression is false and statements inside the body of are skipped.

The statement falls outside of the block (unindented). Hence, it is executed regardless of the test expression.

Sentencias condicionales anidadas

Una sentencia condicional puede contener a su vez otra sentencia anidada.

Por ejemplo, el programa siguiente muestra el color obtenido al mezclar dos colores en la pantalla:

Ejemplo de sentencias condicionales anidadas

Este programa mezcla dos colores.
r. Rojo      a. Azul
Elija un color (r o a): a
  v. Verde    r. Rojo
Elija otro color (v o r): v
La mezcla de Azul y Verde produce Cian.
¡Hasta la próxima!

Puede ver la ejecución paso a paso de este programa utilizando los iconos de avance y retroceso situados abajo a la derecha.

Ejemplo de sentencias condicionales anidadas — Paso 1

Este programa mezcla dos colores.

Se ejecuta la primera instrucción del programa.

En este caso, imprime una frase.

Ejemplo de sentencias condicionales anidadas — Paso 2

Este programa mezcla dos colores.
  r. Rojo      a. Azul

A continuación, imprime otra frase.

Ejemplo de sentencias condicionales anidadas — Paso 2

Este programa mezcla dos colores.
  r. Rojo      a. Azul
  Elija un color (r o a): a

A continuación, imprime la pregunta y espera a que el usuario escriba la respuesta y pulse Intro, guardando la respuesta en la variable «primera».

Ejemplo de sentencias condicionales anidadas — Paso 3

Este programa mezcla dos colores.
  r. Rojo      a. Azul
  Elija un color (r o a): a

A continuación se evalúa la condición (primera == «r»).

En este caso, la condición es falsa (False), puesto que el usuario ha contestado a.

Ejemplo de sentencias condicionales anidadas — Paso 4

Este programa mezcla dos colores.
  r. Rojo      a. Azul
  Elija un color (r o a): a
  v. Verde    r. Rojo

Como la condición es falsa (False), a continuación se ejecutan las instrucciones del bloque else.

Escribe una frase.

Ejemplo de sentencias condicionales anidadas — Paso 5

Este programa mezcla dos colores.
  r. Rojo      a. Azul
  Elija un color (r o a): a
  v. Verde    r. Rojo
  Elija otro color (v o r): v

Imprime la segunda pregunta y espera a que el usuario escriba la respuesta y pulse Intro, guardando la respuesta en la variable «segunda».

Ejemplo de sentencias condicionales anidadas — Paso 6

Este programa mezcla dos colores.
  r. Rojo      a. Azul
  Elija un color (r o a): a
  v. Verde    r. Rojo
  Elija otro color (v o r): v

A continuación se evalúa la condición (segunda == «v»).

En este caso, la condición es cierta (True), puesto que el usuario ha contestado v.

Ejemplo de sentencias condicionales anidadas — Paso 7

Este programa mezcla dos colores.
  r. Rojo      a. Azul
  Elija un color (r o a): a
  v. Verde    r. Rojo
  Elija otro color (v o r): v
La mezcla de Azul y Verde produce Cian.

Como la condición es cierta (True), a continuación se ejecutan las instrucciones del bloque if.

En este caso el bloque consta de una sola instrucción que imprime el texto «La mezcla de Azul y Verde produce Cian.».

Ejemplo de sentencias condicionales anidadas — Paso 8

Este programa mezcla dos colores.
  r. Rojo      a. Azul
  Elija un color (r o a): a
  v. Verde    r. Rojo
  Elija otro color (v o r): v
La mezcla de Azul y Verde produce Cian.
¡Hasta la próxima!

Una vez completado el bloque if, el programa salta a la instrucción siguiente al bloque if … else …

La última instrucción del programa imprime la despedida y el programa termina.

Condiciones no booleanas

Dado que cualquier variable puede interpretarse como una variable booleana, si la condición es una comparación con cero, podemos omitir la comparación.

Por ejemplo, el programa siguiente:

se podría escribir omitiendo la comparación:

En este programa, si el número es impar, numero % 2 da como resultado 1. Y como el valor booleano de un número diferente de cero es True (es decir, bool(1) es True), la condición se estaría cumpliendo.

Si la comparación es una igualdad, se puede utilizar el operador not. Por ejemplo, el programa siguiente:

se podría escribir omitiendo la comparación:

En este programa, si el número es par, numero % 2 da como resultado 0. El valor booleano de cero es False (es decir, bool(0) es False), pero al negarse con not, la condición se estaría cumpliendo (ya que not False es True.

Cuando se está aprendiendo a programar, esta notación puede resultar un poco críptica, por lo que se recomienda empezar escribiendo las comparaciones completas. Más adelante, cuando nos hayamos familiarizado con las expresiones lógicas, nos resultará más natural utilizarla.

if .. else statement

In Python if .. else statement, if has two blocks, one following the expression and other following the else clause. Here is the syntax.

Syntax:

 
if expression :
    statement_1
    statement_2
    ....
     else : 
   statement_3 
   statement_4
   ....

In the above case if the expression evaluates to true the same amount of indented statements(s) following if will be executed and if
the expression evaluates to false the same amount of indented statements(s) following else will be executed. See the following example. The program will print the second print statement as the value of a is 10.

Output:

Value of a is 10

Flowchart:

Simple if statement

This is the simplest example of a conditional statement. The syntax is:

The block of lines indented the same amount after the colon () will be executed whenever the condition is TRUE.


Source: python by Programiz

For example, lets say you are recording the score for a certain course. The total score is 100, with 50 points for the theoritical work and 50 for practical. You want to display an error message or warning if the score exceeds 100.

The colon () is important because it separates the condition from the statements to be executed after the evaluation of the condition. This is specially important for statements where there is only a single statement and the bracket is not used. For example:

The above if statement checks for the ‘if’ condition and determines the statement (40 + 45 = 85) > 100 to be FALSE and thus, will not print the warning. Lets make the statement FALSE and see what happens:

Lets say you wanted to go a step further and display a statement when the total score was actually within the range, i.e. less than 100. This is when the if-else statement would help.

Оператор elif

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

Такая конструкция может содержать сколь угодно большую последовательность условий, которые интерпретатор будет по порядку проверять.

Но помните, что первое условие всегда задается с

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

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

Если ни одно из условий для частей и не выполняется, то срабатывает заключительный блок под оператором (если он существует).

Python NumPy

NumPy IntroNumPy Getting StartedNumPy Creating ArraysNumPy Array IndexingNumPy Array SlicingNumPy Data TypesNumPy Copy vs ViewNumPy Array ShapeNumPy Array ReshapeNumPy Array IteratingNumPy Array JoinNumPy Array SplitNumPy Array SearchNumPy Array SortNumPy Array FilterNumPy Random
Random Intro
Data Distribution
Random Permutation
Seaborn Module
Normal Distribution
Binomial Distribution
Poisson Distribution
Uniform Distribution
Logistic Distribution
Multinomial Distribution
Exponential Distribution
Chi Square Distribution
Rayleigh Distribution
Pareto Distribution
Zipf Distribution

NumPy ufunc
ufunc Intro
ufunc Create Function
ufunc Simple Arithmetic
ufunc Rounding Decimals
ufunc Logs
ufunc Summations
ufunc Products
ufunc Differences
ufunc Finding LCM
ufunc Finding GCD
ufunc Trigonometric
ufunc Hyperbolic
ufunc Set Operations

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector