- №13 Условные выражения и конструкция if / Уроки по Python для начинающих
- Отступы
- elif
- else
- Короткая запись If
- Короткая запись If … Else
- Пример
- And
- Or
- Python. Урок 5. Условные операторы и циклы
- Условный оператор ветвления if
- 1. Конструкция if
- 2. Конструкция if – else
- 3. Конструкция if – elif – else
- Оператор цикла while
- Операторы break и continue
- Оператор цикла for
- P.S.
- Python. Урок 5. Условные операторы и циклы : 41 комментарий
№13 Условные выражения и конструкция if / Уроки по Python для начинающих
Эти условные могут быть использованы несколькими способами, чаще всего в выражениях if и циклах. if записывается с использованием ключевого слова if .
a = 33 b = 200 if b > a: print("b больше, чем a")
В этом примере мы используем две переменных, a и b , которые используются как часть оператора if чтобы убедиться, что b больше чем a . Учитывая, что a — 33, а b — 200, мы знаем что 200 больше чем 33, поэтому мы выводим на экран “b больше, чем a”.
Отступы
Python полагается на отступы пробелом, для определения частей кода. В других языках программирования часто используются фигурные скобки для этой цели.
Оператор if, без отступа (вызовет ошибку):
a = 33 b = 200 if b > a: print("b больше, чем a")
File "demo_indentation_test.py", line 2 print("b больше, чем a") ^ IndentationError: expected an indented block
elif
Ключевое слово elif — это способ Python сказать, что “если предыдущие условные были неверными, тогда попробуйте это условное”.
a = 33 b = 33 if b > a: print("b больше, чем a") elif a == b: print("a равно b")
В этом примере a равняется b , в связи с этим первое условие не будет верно, но условие elif — True, поэтому на экран мы выводим “a равно b”.
else
Ключевое слово else захватывает все, что не было захвачено предыдущими условиями.
a = 200 b = 33 if b > a: print("b больше, чем a") elif a == b: print("a и b равны") else: print("a больше, чем b")
В этом примере a больше чем b , и поэтому первое условие не будет true, так же как и условие elif не будет true, поэтому нам нужно перейти else и вывести на экран “a больше, чем b”.
Вы можете так же использовать else без elif :
a = 200 b = 33 if b > a: print("b больше, чем a") else: print("b меньше, чем a")
Короткая запись If
Если у вас есть только один оператор для выполнения, поместите его в ту же строку, что и оператор if.
Однострочная запись if:
if a > b: print("a больше, чем b")
Короткая запись If … Else
Если у вас есть только один оператор для выполнения, один для if и один для else , вы можете поместить их в одну строку:
Пример
Однострочный оператор if else:
print("A") if a > b else print("B")
Так же вы можете записать сразу несколько операторов else на одной строке:
print("A") if a > b else print(" token punctuation">) if a == b else print("B")
And
Ключевое слово and — логический оператор, который используется для объединения условных операторов:
Проверьте больше ли a нежели b , и больше ли c чем a :
if a > b and c > a: print("Оба условия True")
Or
Ключевое слово or — логический оператор, который используется для объединения условных операторов:
Проверьте больше a чем b , или больше ли a в сравнении с c :
if a > b or a > c: print("Одно из усовий True")
Python. Урок 5. Условные операторы и циклы
В этом уроке рассмотрим оператор ветвления if и операторы цикла while и for. Основная цель – это дать общее представление об этих операторах и на простых примерах показать базовые принципы работы с ними.
Условный оператор ветвления if
Оператор ветвления if позволяет выполнить определенный набор инструкций в зависимости от некоторого условия. Возможны следующие варианты использования.
1. Конструкция if
Синтаксис оператора if выглядит так.
if выражение: инструкция_1 инструкция_2 . инструкция_n
После оператора if записывается выражение. Если это выражение истинно, то выполняются инструкции, определяемые данным оператором. Выражение является истинным, если его результатом является число не равное нулю, непустой объект, либо логическое True. После выражения нужно поставить двоеточие “:”.
ВАЖНО: блок кода, который необходимо выполнить, в случае истинности выражения, отделяется четырьмя пробелами слева!
a = 3 if a == 3: print("hello 2")
a = 3 if a > 1: print("hello 3")
lst = [1, 2, 3] if lst : print("hello 4")
2. Конструкция if – else
Бывают случаи, когда необходимо предусмотреть альтернативный вариант выполнения программы. Т.е. при истинном условии нужно выполнить один набор инструкций, при ложном – другой. Для этого используется конструкция if – else.
if выражение: инструкция_1 инструкция_2 . инструкция_n else: инструкция_a инструкция_b . инструкция_x
a = 3 if a > 2: print("H") else: print("L")
a = 1 if a > 2: print("H") else: print("L")
Условие такого вида можно записать в строчку, в таком случае оно будет представлять собой тернарное выражение.
a = 17 b = True if a > 10 else False print(b)
В результате выполнения такого кода будет напечатано: True
3. Конструкция if – elif – else
Для реализации выбора из нескольких альтернатив можно использовать конструкцию if – elif – else.
if выражение_1: инструкции_(блок_1) elif выражение_2: инструкции_(блок_2) elif выражение_3: инструкции_(блок_3) else: инструкции_(блок_4)
a = int(input("введите число:")) if a 0: print("Neg") elif a == 0: print("Zero") else: print("Pos")
Если пользователь введет число меньше нуля, то будет напечатано “Neg“, равное нулю – “Zero“, большее нуля – “Pos“.
Оператор цикла while
Оператор цикла while выполняет указанный набор инструкций до тех пор, пока условие цикла истинно. Истинность условия определяется также как и в операторе if. Синтаксис оператора while выглядит так.
while выражение: инструкция_1 инструкция_2 . инструкция_n
Выполняемый набор инструкций называется телом цикла.
a = 0 while a 7: print("A") a += 1
Буква “А” будет выведена семь раз в столбик.
Пример бесконечного цикла.
Операторы break и continue
При работе с циклами используются операторы break и continue.
Оператор break предназначен для досрочного прерывания работы цикла while.
a = 0 while a >= 0: if a == 7: break a += 1 print("A")
В приведенном выше коде, выход из цикла произойдет при достижении переменной a значения 7. Если бы не было этого условия, то цикл выполнялся бы бесконечно.
Оператор continue запускает цикл заново, при этом код, расположенный после данного оператора, не выполняется.
a = -1 while a 10: a += 1 if a >= 7: continue print("A")
При запуске данного кода символ “А” будет напечатан 7 раз, несмотря на то, что всего будет выполнено 11 проходов цикла.
Оператор цикла for
Оператор for выполняет указанный набор инструкций заданное количество раз, которое определяется количеством элементов в наборе.
for i in range(5): print("Hello")
В результате “Hello” будет выведено пять раз.
Внутри тела цикла можно использовать операторы break и continue, принцип работы их точно такой же как и в операторе while.
Если у вас есть заданный список, и вы хотите выполнить над каждым элементом определенную операцию (возвести в квадрат и напечатать получившееся число), то с помощью for такая задача решается так.
lst = [1, 3, 5, 7, 9] for i in lst: print(i ** 2)
Также можно пройти по всем буквам в строке.
word_str = "Hello, world!" for l in word_str: print(l)
Строка “Hello, world!” будет напечатана в столбик.
На этом закончим краткий обзор операторов ветвления и цикла.
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Python. Урок 5. Условные операторы и циклы : 41 комментарий
- Ирина 23.09.2017 Подскажите, пожалуйста, что делать, если знаки” == “и “!=” не выделяются отдельным цветом и, соответственно, не дают никакого результата?
- Максим 06.08.2018 Если верно понимаю, Вы не правильно записываете команду
Получается так, что Вы говорите программе, чтобы она описала строчное значение, указанное в “”
В данным случае, Вам нужно применить оператор if и написать:
if name == “0”:
print (“False”) Таким образом вы даете программе условие, что: если переменная равна значению “0” (строчному значению)
то выводи False
- Илья 25.05.2020 def find_NOK(number1, number2):
if number1 < number2:
number1, number2 = number2, number1
for x in range(number2):
if number1*(x+1)%number2 == 0:
return number1*(x+1)
return number1*number2 a, b = map (int, input().split(‘, ‘))
print(find_NOK(a, b))
- Jam 13.07.2020 Функция range генерирует все числа указанные в диапазоне не включая последнее.
Поэтому:
range(1, max(a) + 1)