Python условия и операторы

‘elif’ word

If you have more than two options to tell apart using the conditional operator, you can use
statement.

Let’s show how it works by rewriting the example with point (x,y) on the plane and quadrants from above:

-5
7
x = int(input())
y = int(input())
if x > 0 and y > 0:
    print("Quadrant I")
elif x > 0 and y < 0:
    print("Quadrant IV")
elif y > 0:
    print("Quadrant II")
else:
    print("Quadrant III")

In this case the conditions in and are checked one after another until
the first true condition is found. Then only the true-block for that condition is being executed. If all the
conditions are false, the ‘else’ block is being executed, if it’s present.

Изменяемые и неизменяемые типы данных

Только почему операторы is и == одинаково сравнивают неименованные значения intи string (например, 5 и «example»). Но при этом не ведут себя так же с неименованными списками (например, )?

В Python есть две разновидности типа данных:

  • Изменяемые — те, которые можно изменять
  • Неизменяемые – остаются неизменными (имеют одинаковое расположение в памяти, что is и проверяет) после их создания.

Изменяемые типы данных: list, dictionary, set и определяемые пользователем классы. Неизменяемые типы данных: int, float, decimal, bool, string, tuple, и range.

Python обрабатывает неизменяемые типы данных иначе. То есть сохраняет их в памяти только один раз.

Применим Python-функцию id(), которая вызывает уникальный идентификатор для каждого объекта:

s = "example"
print("Id of s: " + str(id(s)))
print("Id of the String 'example': " + str(id("example")) + " (note that it's the same as the variable s)")
print("s is 'example': " + str(s is "example"))

print("Change s to something else, then back to 'example'.")
s = "something else"
s = "example"
print("Id of s: " + str(id(s)))
print("s is 'example': " + str(s is "example"))
print()

list1 = 
list2 = list1
print("Id of list1: " + str(id(list1)))
print("Id of list2: " + str(id(list2)))
print("Id of : " + str(id()) + " (note that it's not the same as list1!)")
print("list1 == list2: " + str(list1 == list2))
print("list1 is list2: " + str(list1 is list2))

print("Change list1 to something else, then back to the original () value.")
list1 = 
list1 = 
print("Id of list1: " + str(id(list1)))
print("list1 == list2: " + str(list1 == list2))
print("list1 is list2: " + str(list1 is list2))

Выполнение кода выдаст следующий результат:

Id of s: 22531456
Id of the String 'example': 22531456 (note that it's the same as the variable s)
s is 'example': True
Change s to something else, then back to 'example'.
Id of s: 22531456
s is 'example': True

Id of list1: 22103504
Id of list2: 22103504
Id of : 22104664 (note that it's not the same as list1!)
list1 == list2: True
list1 is list2: True
Change list1 to something else, then back to the original () value.
Id of list1: 22591368
list1 == list2: True
list1 is list2: False

В первой части примера переменная возвратит тот же объект , которым она была инициализирована в начале, даже если мы изменим ее значение.

Но не возвращает тот же объект, значение которого равно . При этом создается новый объект, даже если он имеет то же значение, что и первый .

При выполнении кода вы получите разные идентификаторы для объектов, но они будут одинаковыми.

Библиотеки и фреймворки

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

Такое количество библиотек дает преимущество, и способствует популярности Python. Например, высокоуровневая библиотека Pandas. Назначение Pandas – это обработка и анализ данных. Она используется в таких профессиях как Data Science и продолжает активно развиваться.

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

Python бибиотека Pandas

Одним из самых популярных фреймворков с открытым свободным кодом является Django. С его помощь можно не добавлять разные библиотеки отдельно, а установить большинство стандартных функций одним пакетом. В 2010 году с помощью фреймворка Django был создан Instagram и в 2012 году Facebook купил его за миллиард долларов.

Pyramid является еще одним open-source популярным фреймворком. Он универсальный, и дает возможность работать с большими и малыми приложениями. У него хорошее и понятное руководство или пособие. Pyramid используется в тех случаях, когда не требуется разработки полноценной CMS, а хватает веб приложения. Этот фреймворк позволяет быстро собрать проект.

Зачем нужен else при работе с циклами?

Оператор else в циклах выполняется только в том случае, если цикл выполнен успешно. Главная задача оператора else, это поиск объектов:

Python

my_list =

for i in my_list:
if i == 3:
print(«Item found!»)
break
print(i)
else:
print(«Item not found!»)

1
2
3
4
5
6
7
8
9

my_list=1,2,3,4,5

foriinmy_list

ifi==3

print(«Item found!»)

break

print(i)

else

print(«Item not found!»)

В этом коде мы разорвали цикл, когда i равно 3. Это приводит к пропуску оператора else. Если вы хотите провести эксперимент, вы можете изменить условное выражение, чтобы посмотреть на значение, которое находится вне списка, и которое приведет оператор else к выполнению. Честно, ни разу не видел, чтобы кто-либо использовал данную структуру за все годы работы. Большая часть примеров, которые я видел, приведена блогерами, которые пытаются объяснить, как это работает. Я видел несколько людей, которые использовали эту структуру для провоцирования ошибки, когда объект не удается найти в искомом цикле. Вы можете почитать статью, в которой вопрос рассматривается весьма детально. Статья написана одним из разработчиков ядра Python.

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

Оператор
Пример
Смысл
Результат

Эквивалентно

если значение равно значению , в противном случае

Не эквивалентно

если не равно и в противном случае

Меньше

если меньше чем , в противном случае

Меньше или равно

если меньше или равно , в противном случае

Больше

если больше , в противном случае

Больше или равно

если больше или равно , в противном случае

Вот примеры используемых операторов сравнения:

>>> a = 10
>>> b = 20
>>> a == b
False
>>> a != b
True
>>> a <= b
True
>>> a >= b
False
>>> a = 30
>>> b = 30
>>> a == b
True
>>> a <= b
True
>>> a >= b
True

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

Равенство для значений с плавающей точкой

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

>>> x = 1.1 + 2.2
>>> x == 3.3
False

Бабах! Внутренние представления операндов сложения не совсем равны и , поэтому вы не можете полагаться на для точного сравнения с .

Предпочтительным способом определения того, являются ли два значения с плавающей точкой «равными», является вычисление того, находятся ли они близко друг к другу, с учетом некоторого допуска. Посмотрите на этот пример:

>>> tolerance = 0.00001
>>> x = 1.1 + 2.2
>>> abs(x - 3.3) < tolerance
True

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

Различия между списком и генератором

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

При запуске этого кода, программа вернёт результат «list».
Теперь давайте переберём все элементы в списке squared_list.

Приведенный выше сценарий вернёт следующие результаты:

Теперь создадим генератор и выполнить ту же задачу:

Генератор создаётся подобно коллекции списка, но вместо квадратных скобок нужно использовать круглые скобки. Приведенный выше сценарий вернёт значение «generator» как тип переменной squared_gen. Теперь давайте переберём элементы генератора с помощью цикла for.

Выход будет:

Выходные данные такие же, как у списка. Так в чем же разница? Одно из главных отличий заключается в том, как в список и генератор хранят элементы в памяти. Списки хранят все элементы в памяти сразу, тогда как генераторы «создают» каждый элемент на лету, отображая их, а затем перемещаются к следующему элементу, удаляя предыдущий элемент из памяти.

Один из способов проверить это, узнать длину как списка, так и генератора, который только что создали. Функции len(squared_list) вернет 5, а len(squared_gen) выдаст ошибку отсутствия длины у генератора. Кроме того, список можно перебирать столько раз, сколько захотите, но генератор можно перебирать только один раз. Для повторной итерации необходимо создать генератор снова.

Способы реализации тернарного оператора Python

Есть разные способы реализации тернарного оператора Python. Мы можем реализовать тернарный оператор Python, используя кортежи, словари и лямбда-функции. Давайте реализуем тернарный оператор с помощью кортежа. Мы создали две числовые переменные num1 и num2 и сохранили случайные числа в этих переменных. Случайные числа в Python создаются с помощью функции random(). Функция random() присутствует в модуле random.

import random
num1=random.random()
num2=random.random()
#реализация тернарного оператора
print((num1, num2) )

По выходным данным мы не можем определить, что это значение num1 или num2. Давайте реализуем приведенный выше код следующим образом:

import random
num1=random.random()
num2=random.random()
print((f"num1:{num1}", f"num2:{num2}") )

Хорошо! Теперь давайте реализуем тернарный оператор, используя словарь Python и лямбда-функцию.

import random
num1=random.random()
num2=random.random()
#использование словаря Python
print("Использование словаря Python:")
print(({True:f"num1:{num1}",False:f"num2:{num2}"}))
#использование лямбда-функции
print("Использование лямбда-функции:")
print((lambda: f"num1:{num1}", lambda: f"num2:{num2}")())

Использование оператора if, elif и else

Рассмотрим пример использования оператора if вместе с elif и else.

Синтаксис оператора if вместе с elif и else выглядит таким образом:

Elif — это сокращение от else..if. Это позволяет нам проверять наличие нескольких выражений.

Если условие if ложно, то оно проверяет состояние следующего блока elif и так далее.

Если все условия ложны — False, то тело else выполняется.

Только один блок из нескольких блоков if…elif…else выполняется в соответствии с условием.

Блок if может иметь только один блок else. Но он также может иметь несколько блоков elif.

Давайте рассмотрим конкретный пример:

Когда переменная numeric положительна, печатается положительное число.

Если numeric равно 0, то выводится ноль.

Если numeric отрицательно, то печатается отрицательное число.

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.

Обучение Python с нуля

Начать обучение питону с нуля можно при помощи книг таких как «Программируем на Python» Майкла Доусона, «Изучаем Python» Марка Лутца и других. Но обычно книги используются как справочная информация или руководство по питону.

Книга «Программируем на Python» Майкла Доусона

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

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

Syntax

All the programs in the first lesson were executed sequentially, line after line.
No line could be skipped.

Let’s consider the following problem: for the given integer X determine
its absolute value. If X>0 then the program should print the value X,
otherwise it should print -X. This behavior can’t be reached using the sequential
program. The program should conditionally select the next step. That’s where the conditions help:

-273
x = int(input())
if x > 0:
    print(x)
else:
    print(-x)

This program uses a conditional statement . After the
we put a condition following by a colon.
After that we put a block of instructions which will be executed only if the condition
is true (i.e. evaluates to ). This block may be followed by the word
, colon and another block of instructions which will be executed only if the condition is false
(i.e. evaluates to ). Is the case above, the condition is false, so the ‘else’ block
is executed. Each block should be indented using spaces.

To sum up, the conditional statement in Python has the following syntax:

if condition:
    true-block
    several instructions that are executed
    if the condition evaluates to True
else:
    false-block
    several instructions that are executed
    if the condition evaluates to False

The keyword with the ‘false’ block may be omitted in case nothing should be
done if the condition is false. For example, we can replace the variable
with its absolute value like this:

-273
x = int(input())
if x < 0:
    x = -x
print(x)

In this example the variable is assigned to only if .
In contrast, the instruction is executed every time, because it’s not indented,
so it doesn’t belong to the ‘true’ block.

Indentation is a general way in Python to separate blocks of code. All instructions within the same
block should be indented in the same way, i.e. they should have the same number of spaces
at the beginning of the line. It’s recommended to use 4 spaces for indentation.

The indentation is what makes Python different from the most of other language, in which
the curly braces and are used to form the blocks.

By the way, there’s a builtin-function for absolute value in Python:

-273
x = int(input())
print(abs(x))

Приоритеты операторов

Consider this expression:

>>> 20 + 4 * 10
60

There is ambiguity here. Should Python perform the addition first and then multiply the sum by ? Or should the multiplication be performed first, and the addition of second?

Clearly, since the result is , Python has chosen the latter; if it had chosen the former, the result would be . This is standard algebraic procedure, found universally in virtually all programming languages.

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

Вот порядок приоритета операторов Python, которые вы видели до сих пор, от низшего к высшему:

 
Оператор
Описание

низший приоритет

Логическое ИЛИ

Логическое И

Логическое НЕ

, , , , , , ,

сравнения, идентификация

побитовое ИЛИ

побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ

побитовое И

,

битовый сдвиг

,

сложение, вычитание

, , ,

умножение, деление, окруляющее деление, остаток от деления

, ,

плюс, минус, побитовый минус

наивысший приоритет

возведение в степень

 
Операторы в верхней части таблицы имеют самый низкий приоритет, а операторы в нижней части таблицы имеют самый высокий. Любые операторы в одной строке таблицы имеют одинаковый приоритет.

Понятно, почему умножение выполняется первым в приведенном выше примере: умножение имеет более высокий приоритет, чем сложение.

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

>>> 2 * 3 ** 4 * 5
810

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

>>> 20 + 4 * 10
60
>>>(20 + 4) * 10
240
>>> 2 * 3 ** 4 * 5
810
>>> 2 * 3 **(4 * 5)
6973568802

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

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

(a < 10) and(b > 30)

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

a < 10 and b > 30

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

Сценарии использования

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

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

Bool objects and logical operators

When we sum two integer objects using the operator, like , we get a new object:
. In the same way, when we compare two integers using the operator, like
, we get a new object: .

None
print(2 < 5)
print(2 > 5)
None
print(bool(-10))    # True
print(bool(0))      # False - zero is the only false number
print(bool(10))     # True

print(bool(''))     # False - empty string is the only false string
print(bool('abc'))  # True

Sometimes you need to check several conditions at once.
For example, you can check if a number is divisible by 2 using the condition

( gives a remainder when dividing by ).
If you need to check that two numbers and are both divisble by 2,
you should check both
and .
To do that, you join them using an operator
(logical AND): .

Python has logical AND, logical OR and negation.

Operator is a binary operator which evaluates to
if and only if both its left-hand side and right-hand side are .

Operator is a binary operator which evaluates to
if at least one of its sides is .

Operator is a unary negation, it’s followed by some value.
It’s evaluated to if that value is and vice versa.

Let’s check that at least one of the two numbers ends with 0:

15
40
a = int(input())
b = int(input())
if a % 10 == 0 or b % 10 == 0:
    print('YES')
else:
    print('NO')

Let’s check that the number is positive and
the number is non-negative:

if a > 0 and not (b < 0):

Instead of we can write .

Python if…else Statement

Syntax of if…else

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

The statement evaluates and will execute the body of only when the test condition is .

If the condition is , the body of is executed. Indentation is used to separate the blocks.

Example of if…else

Output

Positive or Zero

In the above example, when num is equal to 3, the test expression is true and the body of is executed and the of else is skipped.

If num is equal to -5, the test expression is false and the body of is executed and the body of is skipped.

If num is equal to 0, the test expression is true and body of is executed and of else is skipped.

Функции python 3 — работа с параметрами

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

Создадим небольшую программу с параметрами x, y и z. Определим функцию, которая суммирует параметры в различных конфигурациях. Она возвращает их сумму. Затем мы вызовем функцию и передадим в нее числа.

add_numbers.py
def add_numbers(x, y, z):
    a = x + y
    b = x + z
    c = y + z
    print(a, b, c)

add_numbers(1, 2, 3)

Мы передали число 1 в параметр x, число 2 в параметр y, и число 3 в параметр z. Эти значения соответствуют каждому параметру в том порядке, в котором они приведены.

Программа выполняет математические вычисления на основе значений параметров:

a = 1 + 2
b = 1 + 3
c = 2 + 3

Функция Python 3 выводит результаты математических расчетов a, b, и c, где a должно равняться 3, b — 4 и c — 5. Запускаем программу:

python add_numbers.py

Результат
3 4 5

Когда значения 1, 2 и 3 мы передаем в качестве параметров функции add_numbers(), то получаем ожидаемый результат.

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

Оператор цикла for

Следующий и,
наверное, самый часто используемый оператор цикла – это оператор for, который имеет
такой синтаксис:

for <переменная> in <список> :
      операторы 1…N

Например,

for x in 1,5,2,4:
    print(x**2)

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

начальное
значение, шаг, конечное значение

Для этого
используется генератор последовательностей

range(start, stop, step)

Например, если
мы запишем его вот так:

for x in range(1,5,1):
    print(x)

то в консоли
увидим числа от 1 до 4 с шагом 1. То есть, range генерирует
последовательность в интервале

[1;5)

Последнее
значение не входит в интервал. Если в нашем примере поставить шаг отрицательный
-1, то конечное значение 5 не может быть достигнуто и в этом случае Python возвратит пустую
последовательность:

for x in range(1,5,-1):
    print(x)

Если нам нужны
числа от 5 до 1, то следует записывать range в таком виде:

for x in range(5,,-1):
    print(x)

Причем, в range можно записывать
только целые числа, с вещественными он не работает.

Давайте
перепишем нашу программу подсчета суммы

с помощью цикла for, получим:

S=
for i in range(1, 1001, 1):
    S += 1/i
print(S)

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

Вторым примером
рассмотрим задачу вычисления значений линейной функции

Программа будет
выглядеть так:

k = 0.5; b = 2
lst = , 0.1, 0.2, 0.3, 0.4, 0.5
for x in lst:
    print(x*k+b)

Этот пример
показывает, что для перебора значений счетчика x можно
использовать списки, сформированные ранее в программе. (О списках мы подробнее
будем говорить на последующих занятиях). Здесь же приведем еще один пример:

msg = "Hello World!"
for x in msg:
    print(x)

Он показывает,
что строку можно воспринимать как список и перебирать с помощью цикла for.

Также в цикле for можно
использовать блок else, о котором мы говорили ранее:

for <переменная> in <список> :
      операторы 1…N
else:
      операторы 1…N

Python Compound If Statement Example

The following example shows how you can use compound conditional commands in the if statement.

# cat if7.py
a = int(input("Enter a: "))
b = int(input("Enter b: "))
c = int(input("Enter c: "))
if a < b < c: 
  print("Success. a < b < c")

In the above:

The print block will get executed only when the if condition is true. Here, we are using a compound expression for the if statement where it will be true only when a is less than b and b is less than c.

The following is the output when if condition becomes true.

# python if7.py
Enter a: 10
Enter b: 20
Enter c: 30
Success. a < b < c

The following is the output when if condition becomes false.

# python if7.py
Enter a: 10
Enter b: 10
Enter c: 20

Условные списки

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

Для каждого в  если имеет значение , добавить (обычно функция ) в возвращаемом списке.

Например, это можно использовать для извлечения только четных чисел из последовательности целых чисел:

Приведенный выше код эквивалентен:

Кроме того , усвоение условного списка вида , где   и являются выражениями в терминах ) эквивалентно

Несмотря на предоставление того же результата, обратите внимание на тот факт, что первый пример почти в 2 раза быстрее, чем второй. Для тех , кому любопытно, это хорошее объяснение причин почему

Обратите внимание , что это совершенно отличается от условного выражения (иногда известное как трехкомпонентное выражение ) , которые вы можете использовать для часть списка понимания. Рассмотрим следующий пример:. Здесь условное выражение — не фильтр, а оператор, определяющий значение, которое будет использоваться для элементов списка:

Здесь условное выражение — не фильтр, а оператор, определяющий значение, которое будет использоваться для элементов списка:

Это становится более очевидным, если вы объедините его с другими операторами:

Приведенный выше код эквивалентен:

Можно комбинировать тройные выражения и условия. Тернарный оператор работает с отфильтрованным результатом:

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

Вложенные условия

Любая инструкция Python может быть помещена в «истинные» блоки и «ложный» блок, включая другой условный оператор. Таким образом, мы получаем вложенные условия. Блоки внутренних условий имеют отступы, используя в два раза больше пробелов (например, 8 пробелов). Давайте посмотрим пример. Если заданы координаты точки на плоскости, напечатайте ее квадрант.

2
-3
x = int(input())
y = int(input())
if x > 0:
    if y > 0:
        # x больше 0, y больше 0
        print("Quadrant I")
    else:    
        # x больше 0, y меньше или равно 0
        print("Quadrant IV")
else:
    if y > 0:
        # x меньше или равно 0, y больше 0
        print("Quadrant II")
    else:    
        # x меньше или равно 0, y меньше или равно 0
        print("Quadrant III")

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

if statement #

The syntax of if statement is as follows:

Syntax:

1
2
3
4
5
if condition
    <indented statement 1>
    <indented statement 2>

<non-indented statement>

The first line of the statement i.e is known as if clause and the is a boolean expression, that is evaluated to either or . In the next line, we have have block of statements. A block is simply a set of one or more statements. When a block of statements is followed by if clause, it is known as if block. Notice that each statement inside the if block is indented by the same amount to the right of the if keyword. Many languages like C, C++, Java, PHP, uses curly braces () to determine the start and end of the block but Python uses indentation. Each statement inside the if block must be indented by the same number of spaces. Otherwise, you will get syntax error. Python documentation recommends to indent each statement in the block by 4 spaces. We use this recommendation in all our programs throughout this course.

How it works:

When if statement executes, the condition is tested. If condition is true then all the statements inside the if block is executed. On the other hand, if the condition is false then all the statements in the if block is skipped.

The statements followed by the if clause which are not indented doesn’t belong to the if block. For example, is not the part of the if block, as a result, it will always execute no matter whether the condition in the if clause is true or false.

Here is an example:

python101/Chapter-09/if_statement.py

1
2
3
4
number = int(input("Enter a number: "))

if number > 10
    print("Number is greater than 10")

First Run Output:

1
2
Enter a number: 100
Number is greater than 10

Second Run Output:

Enter a number: 5

Notice that in the second run when condition failed, statement inside the if block is skipped. In this example the if block consist of only one statement, but you can have any number of statements, just remember to properly indent them.

Now consider the following code:

python101/Chapter-09/if_statement_block.py

1
2
3
4
5
6
7
number = int(input("Enter a number: "))
if number > 10
    print("statement 1")
    print("statement 2")
    print("statement 3")
print("Executes every time you run the program")
print("Program ends here")

First Run Output:

1
2
3
4
5
6
Enter a number: 45
statement 1
statement 2
statement 3
Executes every time you run the program
Program ends here

Second Run Output:

1
2
3
Enter a number: 4
Executes every time you run the program
Program ends here

The important thing to note in this program is that only statements in line 3,4 and 5 belongs to the if block. Consequently, statements in line 3,4 and 5 will execute only when the if condition is true, on the other hand statements in line 6 and 7 will always execute no matter what.

Python shell responds somewhat differently when you type control statements inside it. Recall that, to split a statement into multiple lines we use line continuation operator (). This is not the case with control statements, Python interpreter will automatically put you in multi-line mode as soon as you hit enter followed by an if clause. Consider the following example:

1
2
3
4
>>>
>>> n = 100
>>> if n > 10
...

Notice that after hitting Enter key followed by if clause the shell prompt changes from to . Python shell shows for multi-line statements, it simply means the statement you started is not yet complete.

To complete the if statement, add a statement to the if block as follows:

1
2
3
4
5
>>>
>>> n = 100
>>> if n > 10
...     print("n is greater than 10")
...

Python shell will not automatically indent your code, you have to do that yourself. When you are done typing statements in the block hit enter twice to execute the statement and you will be taken back to the normal prompt string.

1
2
3
4
5
6
7
>>>
>>> n = 100
>>> if n > 10
...     print("n is greater than 10")
...
n is greater than 10
>>>

The programs we have written so far ends abruptly without showing any response to the user if the condition is false. Most of the time we want to show the user a response even if the condition is false. We can easily do that using if-else statement

Операторы¶

Кратко рассмотрим операторы и их применение:

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

>>> 2 + 3
5
>>> 3 * 5
15

Операторы и их применение

Оператор
Название
Объяснение
Примеры

Сложение
Суммирует два
объекта

даст ;
даст

Вычитание
Даёт разность
двух чисел;
если первый
операнд
отсутствует,
он считается
равным нулю

даст отрицательное число,
а даст .

Умножение
Даёт
произведение
двух чисел или
возвращает
строку,
повторённую
заданное число
раз.

даст .
даст .

Возведение
в степень
Возвращает
число ,
возведённое в
степень

даст
(т.е. )
Деление
Возвращает
частное от
деления
на

даст .

Целочисленное
деление
Возвращает
неполное
частное от
деления

даст .
даст .

Деление по
модулю
Возвращает
остаток от
деления

даст .
даст .

Сдвиг влево
Сдвигает биты
числа влево на
заданное
количество
позиций. (Любое
число в памяти
компьютера
представлено в
виде битов —
или двоичных
чисел, т.е.
0 и 1)

даст .
В двоичном виде представляет
собой . Сдвиг влево на 2 бита
даёт , что в десятичном
виде означает .

Сдвиг вправо
Сдвигает биты
числа вправо на
заданное число
позиций.

даст .
В двоичном виде представляется
как , что будучи смещённым на
1 бит вправо, даёт , а это, в
свою очередь, не что иное как
десятичное

Побитовое И
Побитовая
операция И над
числами

даёт .

Побитовое ИЛИ
Побитовая
операция ИЛИ
над числами

даёт

Побитовое
ИСКЛЮЧИТЕЛЬНО
ИЛИ
Побитовая
операция
ИСКЛЮЧИТЕЛЬНО
ИЛИ

даёт

Побитовое НЕ

Побитовая
операция НЕ для
числа
соответствует

даёт .

Меньше
Определяет,
верно ли, что
меньше

Все
операторы
сравнения
возвращают
или
.
Обратите
внимание на
заглавные буквы
в этих словах.

даст ,
а даст .
Можно составлять произвольные цепочки
сравнений: даёт .

Больше

Определяет,
верно ли, что
больше

даёт .
Если оба операнда — числа, то перед
сравнением они оба преобразуются к
одинаковому типу. В противном случае
всегда возвращается .

Меньше или
равно
Определяет,
верно ли, что
меньше
или равно

даёт
.

Больше или
равно
Определяет,
верно ли, что
больше
или равно

даёт
.

Равно
Проверяет,
одинаковы ли
объекты

даёт
.
даёт
.
даёт
.

Не равно
Проверяет,
верно ли, что
объекты не
равны

даёт
.

Логическое НЕ
Если
равно ,
оператор вернёт

Если
же равно
,
получим
.

даёт .

Логическое И

даёт ,
если
равно
, в противном
случае
возвращает
значение

возвращает , поскольку x равно
. В этом случае Python не
станет проверять значение , так
как уже знает, что левая часть
выражения ‘and’ равняется ,
что подразумевает, что и всё выражение
в целом будет равно ,
независимо от значений всех остальных
операндов. Это называется укороченной
оценкой булевых (логических) выражений.

Логическое
ИЛИ
Если
равно ,
в результате
получим
, в
противном
случае получим
значение

даёт
. Здесь также может
производиться укороченная оценка
выражений.

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

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

Adblock
detector