Оператор if позволяет организовать альтернативный выбор. Синтаксис оператора выдержан в минималистском стиле:
if <выражение>: <операторы> else: <операторы>
Стиль Python предполагает, что заголовок оператора if, заканчивающийся двоеточием, находится на отдельной строке и не требует заключения логического выражения в скобки. Составные операторы if-ветви и else-ветви также не заключаются в скобки. В Python последовательность операторов с одинаковым отступом воспринимается как один составной оператор. Изменение отступа означает переход на другой уровень вложенности. Поскольку ключевые слова if и else располагаются с одинаковым отступом, то конец операторов if-ветви легко распознается. Нарушение отступов приводит к синтаксическим ошибкам.
Рассмотрим пример записи оператора if в стиле, классическом для Python:
def test1():
#классический стиль
#каждый оператор на отдельной строке
#нет скобок
a = b = 0
answer = input("Ваше слово - да или нет\n ")
if answer == "да":
a = 10
b = 100
else:
a = -10
b = -100
print ("answer = ", answer )
print ("a = ", a)
print ("b = ", b)
test1()
Результаты работы:
Синтаксис допускает нарушение стиля. Логическое выражение может заключаться в скобки. Для сложных логических выражений это просто необходимо.
Несколько операторов могут появляться на одной строке и тогда они разделяются, как обычно, символом точка с запятой. Вот соответствующий пример:
def test2():
#нарушение классического стиля
#несколько операторов на строке
#есть скобки
a = b = 0
answer = input("Ваше слово - да или нет\n ")
if (answer == "да" or
answer == "yes" or answer == 1):
a = 10; b = 100
else:
a = -10; b = -100
print ("answer = ", answer )
print ("a = ", a)
print ("b = ", b)
test2()
Результаты:
В простых ситуациях настоящие "питонисты" скобок не ставят и каждому оператору отводят отдельную строку.
Конечно, допустима краткая форма оператора if, когда else ветвь опускается.
def test3():
max = 0
x = input('введите число\n')
x = float(x)
if x > max:
max = x
print ('max = ', max)
test3()
Результаты:
Как и в других языках программирования, наряду с условным оператором if, существует похожая конструкция условного выражения. Синтаксически такое выражение имеет вид:
выражение_1 if логическое выражение else выражение_2
Семантика интуитивно понятна. Если логическое выражение имеет значение true, то результатом является выражение_1, в противном случае - выражение_2.
Приведу пример:
def test4():
#условное выражение
x = input('Введите два числа\n')
y = input()
x = float(x)
y = float(y)
max = x if x >= y else y
print ('max = ', max)
answer = input('Ваше слово - да или нет\n')
a, b = [10, 100] if answer == 'да' else [-10, -100]
print ("answer = ", answer)
print ("a = ", a)
print ("b = ", b)
test4()
Результаты:
Условное выражение позволяет заменить одной строкой многострочную последовательность в записи оператора if. Конечно, такая запись менее понятна в сравнении с записью оператора if. Однако в ней есть свои преимущества. Когда мы описываем некоторую функцию, то для ее восприятия число строк в ней не должно быть большим, как правило, - 10-15 строк, чтобы функция целиком помещалась на экране компьютера. Условное выражение и запись нескольких операторов на одной строке позволяют сжать текст функции.
В большинстве языков программирования наряду с оператором альтернативного выбора if существует и оператор множественного выбора. В языках C, C++, C#, Java таким оператором является оператор switch. Замечу, самый неудачный по синтаксису и семантике оператор.
В языке Python нет специального оператора множественного выбора. Множественный выбор реализуется оператором if, включающим ветви elif (else if) для разбора вариантов.
Синтаксис оператора if Python в случае множественного выбора имеет вид:
if логическое выражение: операторы if ветви elif логическое выражение: операторы elif ветви else: операторы else ветви
Ветвь elif может присутствовать многократно. Ветвь else - ветвь по умолчанию - может отсутствовать.
Приведем в качестве примера типичную для разбора вариантов задачу нахождения корней квадратного уравнения.
Пример - решение квадратного уравнения:
def test5():
import math
#оператор if
#решение квадратного уравнения
print("Введите a, b, c - коэффициенты уравнения")
a = input("введите a\n")
b = input("введите b\n")
c = input("введите c\n")
a = float(a); b = float(b); c = float(c);
print("a = ", a); print("b = ", b); print("c = ", c);
d = b * b - 4 * a * c
if d > 0:
x1 = (-b + math.sqrt(d))/(2 * a)
x2 = (-b - math.sqrt(d))/(2 * a)
print('x1 =', x1, 'x2 = ', x2)
elif d == 0:
x1 = x2 = -b / (2 * a)
print("корни совпадают", 'x1 = x2 = ', -b / (2 * a))
else:
x1 = x2 = "NAN"
print('уравнение не имеет действительных корней')
test5()
Результаты работы:
Рассмотрим еще один типичный пример выбора с большим числом ветвей.
def test6():
# выбор операции над операндами
print("Введите операнды a, b, и операцию над ними - operation")
a = input("введите a\n")
b = input("введите b\n")
operation = input("введите operation\n")
a = float(a); b = float(b)
print("a = ", a); print("b = ", b); print("operation = ", operation);
if operation == '+' or operation == 'Plus' or operation == 'Add':
result = a + b
elif operation == '-' or operation == 'Minus' or operation == 'Sub':
result = a - b
elif operation == '*' or operation == 'Umn' or operation == 'Mult':
result = a * b
elif operation == '/' or operation == 'Del' or operation == 'Div':
result = a / b
elif operation == '//':
result = a // b
elif operation == '%':
result = a % b
else:
result = "NAN"
if result == "NAN" :
print('Операция неизвестна')
else:
print ('result = ', result)
test6()
Результаты:
Словарь можно рассматривать как структуру выбора, интерпретируя ключи элементов как варианты выбора, а значения элементов, - как результат сделанного выбора. Это не дает универсального решения, как в случае использования оператора if, когда в результате выбора выполняется соответствующая группа операторов. Однако в случае, когда результатом выбора является некоторое значение, то словарь является достойной заменой оператора множественного выбора if. Рассмотрим пример, когда в зависимости от выбираемого типа авиабилета вычисляется цена билета.
def test7():
#словарь как структура выбора
dict_choice = {'econom' : 800, 'business' : 1400, 'first_class': 2000, 'lux' : 3000}
your_choice = input("Введите Ваш выбор\n")
price = dict_choice[your_choice]
print("ticket = ", your_choice, 'price = ', price )
test7()
Результаты:
Оператор if помимо if-ветви и elif-ветвей может содержать и ветвь else - ветвь по умолчанию. При работе со словарем значение по умолчанию в словаре явно задать нельзя. Но эта проблема легко решается, как показано в следующем примере:
def test8():
#словарь и значение по умолчанию
lang = input('Ваш язык программирования\n')
dict_choice = {'C#': 'отдел_А', 'C++': 'отдел_Б', 'Python': 'отдел_В'}
if lang in dict_choice:
otdel = dict_choice(lang)
else:
otdel = 'учебный отдел'
print ('язык - ', lang, 'отдел - ', otdel)
test8()
Результаты:
В заключение следует сказать, что словарь как структура выбора может быть столь же универсален, как и оператор if, если использовать в качестве значений элементов словаря анонимные функции, - функции, заданные лямбда определением. Хотя такой вариант допустим, но он явно проигрывает оператору if в наглядности и простоте понимания.
Оператор if позволяет организовать альтернативный выбор. Синтаксис оператора выдержан в минималистском стиле:
if <выражение>: <операторы> else: <операторы>
Стиль Python предполагает, что заголовок оператора if, заканчивающийся двоеточием, находится на отдельной строке и не требует заключения логического выражения в скобки. Составные операторы if-ветви и else-ветви также не заключаются в скобки. В Python последовательность операторов с одинаковым отступом воспринимается как один составной оператор. Изменение отступа означает переход на другой уровень вложенности. Поскольку ключевые слова if и else располагаются с одинаковым отступом, то конец операторов if-ветви легко распознается. Нарушение отступов приводит к синтаксическим ошибкам.
Рассмотрим пример записи оператора if в стиле, классическом для Python:
def test1():
#классический стиль
#каждый оператор на отдельной строке
#нет скобок
a = b = 0
answer = input("Ваше слово - да или нет\n ")
if answer == "да":
a = 10
b = 100
else:
a = -10
b = -100
print ("answer = ", answer )
print ("a = ", a)
print ("b = ", b)
test1()
Результаты работы:
Синтаксис допускает нарушение стиля. Логическое выражение может заключаться в скобки. Для сложных логических выражений это просто необходимо.
Несколько операторов могут появляться на одной строке и тогда они разделяются, как обычно, символом точка с запятой. Вот соответствующий пример:
def test2():
#нарушение классического стиля
#несколько операторов на строке
#есть скобки
a = b = 0
answer = input("Ваше слово - да или нет\n ")
if (answer == "да" or
answer == "yes" or answer == 1):
a = 10; b = 100
else:
a = -10; b = -100
print ("answer = ", answer )
print ("a = ", a)
print ("b = ", b)
test2()
Результаты:
В простых ситуациях настоящие "питонисты" скобок не ставят и каждому оператору отводят отдельную строку.
Конечно, допустима краткая форма оператора if, когда else ветвь опускается.
def test3():
max = 0
x = input('введите число\n')
x = float(x)
if x > max:
max = x
print ('max = ', max)
test3()
Результаты:
Как и в других языках программирования, наряду с условным оператором if, существует похожая конструкция условного выражения. Синтаксически такое выражение имеет вид:
выражение_1 if логическое выражение else выражение_2
Семантика интуитивно понятна. Если логическое выражение имеет значение true, то результатом является выражение_1, в противном случае - выражение_2.
Приведу пример:
def test4():
#условное выражение
x = input('Введите два числа\n')
y = input()
x = float(x)
y = float(y)
max = x if x >= y else y
print ('max = ', max)
answer = input('Ваше слово - да или нет\n')
a, b = [10, 100] if answer == 'да' else [-10, -100]
print ("answer = ", answer)
print ("a = ", a)
print ("b = ", b)
test4()
Результаты:
Условное выражение позволяет заменить одной строкой многострочную последовательность в записи оператора if. Конечно, такая запись менее понятна в сравнении с записью оператора if. Однако в ней есть свои преимущества. Когда мы описываем некоторую функцию, то для ее восприятия число строк в ней не должно быть большим, как правило, - 10-15 строк, чтобы функция целиком помещалась на экране компьютера. Условное выражение и запись нескольких операторов на одной строке позволяют сжать текст функции.
В большинстве языков программирования наряду с оператором альтернативного выбора if существует и оператор множественного выбора. В языках C, C++, C#, Java таким оператором является оператор switch. Замечу, самый неудачный по синтаксису и семантике оператор.
В языке Python нет специального оператора множественного выбора. Множественный выбор реализуется оператором if, включающим ветви elif (else if) для разбора вариантов.
Синтаксис оператора if Python в случае множественного выбора имеет вид:
if логическое выражение: операторы if ветви elif логическое выражение: операторы elif ветви else: операторы else ветви
Ветвь elif может присутствовать многократно. Ветвь else - ветвь по умолчанию - может отсутствовать.
Приведем в качестве примера типичную для разбора вариантов задачу нахождения корней квадратного уравнения.
Пример - решение квадратного уравнения:
def test5():
import math
#оператор if
#решение квадратного уравнения
print("Введите a, b, c - коэффициенты уравнения")
a = input("введите a\n")
b = input("введите b\n")
c = input("введите c\n")
a = float(a); b = float(b); c = float(c);
print("a = ", a); print("b = ", b); print("c = ", c);
d = b * b - 4 * a * c
if d > 0:
x1 = (-b + math.sqrt(d))/(2 * a)
x2 = (-b - math.sqrt(d))/(2 * a)
print('x1 =', x1, 'x2 = ', x2)
elif d == 0:
x1 = x2 = -b / (2 * a)
print("корни совпадают", 'x1 = x2 = ', -b / (2 * a))
else:
x1 = x2 = "NAN"
print('уравнение не имеет действительных корней')
test5()
Результаты работы:
Рассмотрим еще один типичный пример выбора с большим числом ветвей.
def test6():
# выбор операции над операндами
print("Введите операнды a, b, и операцию над ними - operation")
a = input("введите a\n")
b = input("введите b\n")
operation = input("введите operation\n")
a = float(a); b = float(b)
print("a = ", a); print("b = ", b); print("operation = ", operation);
if operation == '+' or operation == 'Plus' or operation == 'Add':
result = a + b
elif operation == '-' or operation == 'Minus' or operation == 'Sub':
result = a - b
elif operation == '*' or operation == 'Umn' or operation == 'Mult':
result = a * b
elif operation == '/' or operation == 'Del' or operation == 'Div':
result = a / b
elif operation == '//':
result = a // b
elif operation == '%':
result = a % b
else:
result = "NAN"
if result == "NAN" :
print('Операция неизвестна')
else:
print ('result = ', result)
test6()
Результаты:
Словарь можно рассматривать как структуру выбора, интерпретируя ключи элементов как варианты выбора, а значения элементов, - как результат сделанного выбора. Это не дает универсального решения, как в случае использования оператора if, когда в результате выбора выполняется соответствующая группа операторов. Однако в случае, когда результатом выбора является некоторое значение, то словарь является достойной заменой оператора множественного выбора if. Рассмотрим пример, когда в зависимости от выбираемого типа авиабилета вычисляется цена билета.
def test7():
#словарь как структура выбора
dict_choice = {'econom' : 800, 'business' : 1400, 'first_class': 2000, 'lux' : 3000}
your_choice = input("Введите Ваш выбор\n")
price = dict_choice[your_choice]
print("ticket = ", your_choice, 'price = ', price )
test7()
Результаты:
Оператор if помимо if-ветви и elif-ветвей может содержать и ветвь else - ветвь по умолчанию. При работе со словарем значение по умолчанию в словаре явно задать нельзя. Но эта проблема легко решается, как показано в следующем примере:
def test8():
#словарь и значение по умолчанию
lang = input('Ваш язык программирования\n')
dict_choice = {'C#': 'отдел_А', 'C++': 'отдел_Б', 'Python': 'отдел_В'}
if lang in dict_choice:
otdel = dict_choice(lang)
else:
otdel = 'учебный отдел'
print ('язык - ', lang, 'отдел - ', otdel)
test8()
Результаты:
В заключение следует сказать, что словарь как структура выбора может быть столь же универсален, как и оператор if, если использовать в качестве значений элементов словаря анонимные функции, - функции, заданные лямбда определением. Хотя такой вариант допустим, но он явно проигрывает оператору if в наглядности и простоте понимания.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.