Язык программирования Python
Операторы ветвления в языке Python
Операторы ветвления
Полная форма ветвления (условного оператора):
if :
else :
условие
нет
да
действия_2
действия_1
Если условие истинно, то выполняется блок_1, иначе – блок_2.
В языке Python важную роль играют отступы операторов от левой границы текста программы. Начало и конец блоков операторов определяется этими сдвигами. Задаются отступы пробелами или клавишей Tab .
Если в блоке всего один оператор, то допустима такая форма записи:
if :
else :
Операторы ветвления
Неполная форма ветвления (условного оператора):
условие
нет
да
if :
действия
Если условие истинно, то выполняется блок операторов.
В противном случае – переход к следующему оператору программы.
Если в блоке всего один оператор, то допустима такая форма записи:
if :
3 and 2*2=4 #истинно 53 and 2*2=5 #ложно Логическое сложение or («ИЛИ») . Составное условие истинно, если истинно хотя бы одно простое условие, входящее в него. 5 or 2*2=4 #истинно 5 or 2*2=5 #ложно Логическое отрицание not («НЕ») . Если условие истинно, то его отрицание ложно, и наоборот. not 2*2=4 #ложно Приоритет операций: , =, ==, != not and or " width="640"
Составные условия
В качестве условий можно использовать как простые логические выражения, так и составные, записанные с помощью логических операций.
- Логическое умножение and («И») . Составное условие истинно, если истинны все простые условия, входящие в него.
53 and 2*2=4 #истинно
53 and 2*2=5 #ложно
- Логическое сложение or («ИЛИ») . Составное условие истинно, если истинно хотя бы одно простое условие, входящее в него.
5 or 2*2=4 #истинно
5 or 2*2=5 #ложно
- Логическое отрицание not («НЕ») . Если условие истинно, то его отрицание ложно, и наоборот.
not 2*2=4 #ложно
Приоритет операций:
Вложенные ветвления
Внутри условного оператора могут находиться любые операторы, в том числе и другие условные операторы ( вложенные условные операторы ).
Это позволяет сделать выбор не из двух, а из нескольких вариантов.
Если после else следует еще один оператор if , можно использовать «каскадное» ветвление с ключевыми словами elif («else-if»).
Если очередное условие ложно, то выполняется проверка следующего условия и т. д.
if :
if :
else :
elif :
if :
. . .
else :
else :
b m = a да нет a m = a m = b m = b вывод m вывод m конец конец " width="640"
Задача 1
Определить большее из двух значений переменных.
1 способ
2 способ
начало
начало
ввод a, b
ввод a, b
нет
да
ab
m = a
да
нет
a
m = a
m = b
m = b
вывод m
вывод m
конец
конец
b: m = a else : m = b print ( "Большее число" , m) Введите два числа: a= 5 b= 6 Большее число 6 2 способ # Большее из двух print ( "Введите два числа:" ) a = int ( input ( "a=" )) b = int ( input ( "b=" )) m = a if aprint ( "Большее число" , m) Введите два числа: a= 6 b= 5 Большее число 6 Примечание: в языке Python есть встроенная функция max. m = max (a, b) " width="640"
Задача 1
Определить большее из двух значений переменных.
1 способ
# Большее из двух
print ( "Введите два числа:" )
a = int ( input ( "a=" ))
b = int ( input ( "b=" ))
if ab: m = a
else : m = b
print ( "Большее число" , m)
Введите два числа:
a= 5
b= 6
Большее число 6
2 способ
# Большее из двух
print ( "Введите два числа:" )
a = int ( input ( "a=" ))
b = int ( input ( "b=" ))
m = a
if a
print ( "Большее число" , m)
Введите два числа:
a= 6
b= 5
Большее число 6
Примечание: в языке Python есть встроенная функция max.
m = max (a, b)
Задача 2
Найти корни данного квадратного уравнения ax 2 +bx+c=0 .
начало
ввод a, b, c
(d
(d≥0)
нет
да
d
«Корней нет»
вывод x1, x2
конец
Задача 2
Найти корни данного квадратного уравнения ax 2 +bx+c=0 .
# Решение квадратного уравнения
from math import *
print ( "Введите коэффициенты a, b, c:" )
a = float ( input ( "a= " ))
b = float ( input ( "b= " ))
c = float ( input ( "c= " ))
d = b**2 - 4*a*c # дискриминант
if d
else :
x1 = (-b + sqrt(d)) / (2 * a)
x2 = (-b - sqrt(d)) / (2 * a)
print ( "x1=" , "{:6.2f}" .format(x1))
print ( "x2=" , "{:6.2f}" .format(x2))
Введите коэффициенты a, b, c:
Введите коэффициенты a, b, c:
a= 1
a= 4
b= 3
b= 1
c= 2
c= 4
x1= -1.00
Корней нет!
x2= -2.00
0) (d=0) да нет d=0 «Корней нет» вывод x вывод x1, x2 конец " width="640"
Задача 3
Найти корни данного квадратного уравнения ax 2 +bx+c=0, учитывая случай, когда уравнение имеет один корень.
начало
ввод a, b, c
вложенное ветвление
(d≥0)
(d
нет
да
d
(d0)
(d=0)
да
нет
d=0
«Корней нет»
вывод x
вывод x1, x2
конец
Задача 3
Найти корни данного квадратного уравнения ax 2 +bx+c=0, учитывая случай, когда уравнение имеет один корень.
# Решение квадратного уравнения (вложенные ветвления)
from math import *
print ( "Введите коэффициенты a, b, c:" )
a = float ( input ( "a= " ))
b = float ( input ( "b= " ))
c = float ( input ( "c= " ))
d = b**2 - 4*a*c # дискриминант
if d
print ( "Корней нет!" )
else :
if d==0:
x = -b/(2*a)
print ( "Корень один x=" , "{:6.2f}" .format(x))
else :
x1 = (-b + sqrt(d)) / (2 * a)
x2 = (-b - sqrt(d)) / (2 * a)
print ( "Два корня:" )
print ( "x1=" , "{:6.2f}" .format(x1))
print ( "x2=" , "{:6.2f}" .format(x2))
Введите коэффициенты a, b, c:
a= 4
b= 1
c= 4
Корней нет!
Введите коэффициенты a, b, c:
a= 4
b= 4
c= 1
Корень один x= -0.50
Введите коэффициенты a, b, c:
a= 1
b= 3
c= 2
x1= -1.00
x2= -2.00
1) (-1≤x≤1) нет да y = x+2 x ≤ 1 y = 2-x y = 1 вывод y конец " width="640"
Задача 4 (1 способ)
Найти значение функции для любого значения аргумента.
y
2
1
x
начало
0
2
-2
1
-1
-1
ввод x
(x≥-1)
(x
да
нет
x
(x1)
(-1≤x≤1)
нет
да
y = x+2
x ≤ 1
y = 2-x
y = 1
вывод y
конец
Задача 4 (1 способ)
Найти значение функции для любого значения аргумента.
# Значение функции
x = float ( input ( "Введите x: " ))
if x
y = x+2
else :
if x
y = 1
else :
y = 2-x
print ( "y=" , y)
Введите x: -2
y= 0.0
Введите x: 0.5
y= 1
Введите x: 2
y= 0.0
= -1 and x if x 1: y = 2-x print ( "y=" , y) y = x+2 да нет -1 ≤x≤1 y = 1 нет да x1 Примечание: в языке Python разрешены двойные неравенства, например: if -1 y = 2-x вывод y конец " width="640"
Задача 4 (2 способ)
Найти значение функции для любого значения аргумента.
начало
ввод x
да
нет
x
# Значение функции
x = float ( input ( "Введите x: " ))
if x
if x = -1 and x
if x 1: y = 2-x
print ( "y=" , y)
y = x+2
да
нет
-1 ≤x≤1
y = 1
нет
да
x1
Примечание: в языке Python разрешены двойные неравенства, например:
if -1
y = 2-x
вывод y
конец
=3 and melif m=6 and melif m=9 and melse : print ( "Неверный номер месяца!" ) " width="640"
Задача 5
Вывести на экран название времени года по номеру месяца.
# Времена года (каскадное ветвление)
m = int ( input ( "Введите номер месяца: " ))
if m==1 or m==2 or m==12: print ( "Это зима" )
elif m=3 and m
elif m=6 and m
elif m=9 and m
else : print ( "Неверный номер месяца!" )
Используемые материалы:
- Босова Л.Л. Информатика. 8-9 классы. Начала программирования на языке Python. Дополнительные главы к учебникам – М. : БИНОМ. Лаборатория знаний, 2020.
- Поляков К.Ю. Информатика. 10 класс. Базовый и углубленный уровни : в 2ч. Ч. 2 – М. : БИНОМ. Лаборатория знаний, 2018.
Огромное спасибо за публикацию!