Найти тему

Программирование на Python. Ветвление с помощью конструкции if else elif

Когда необходимо пустить выполнение кода программы по одному из вариантов, выбор которого зависит от какого-либо условия, применяется конструкция if. Например, если переменная t больше нуля, то выведем сообщение «температура положительная»:

if t > 0:
____print(“температура положительная”)

Обратите внимание на отступ у второй строки, оформленные знаком подчеркивания (Дзен не дает сделать пробелы, но вы делайте в коде именно пробелы; делается или 4 пробела, или один tab).

Как мы уже говорили, Python – пробелозависимый язык. Это значит, что он предусматривает формирование логики кода путем различных отступов. Чаще всего отступ необходим у тех строк, которые логически подчинены какой-либо конструкции. В данном случае функция print() должна сработать только в том случае, если срабатывает условие в конструкции if. Следовательно, выполнение строки кода с print() зависит от выполнения условия в if. Поэтому вторую строку нужно сдвинуть вправо. Если бы мы в этом примере не сдвинули строку, то она выполнялась бы в любом случае, в не зависимости от выполнения условия.

Сдвиг строки в Питоне обычно осуществляется либо на 4 пробела, либо клавишей [Tab]. В конце управляющих строк всегда нужно не забывать ставить двоеточие – иначе будет ошибка.

Давайте рассмотрим другой пример. Если на вопрос «Сколько будет 2+2*2?» мы получим ответ «6», тогда выведем «Правильно!», иначе выведем «Неверно!».

n = input(“Сколько будет 2 + 2 * 2? ”)
if n == “6”:
____print(“Правильно!”)
else:
____print(“Неверно!”)

Обратите внимание: мы взяли в кавычки цифру 6 – потому что, как уже говорилось, функция input() возвращает строку, т.е. символы. Можно было бы преобразовать в число с помощью функции int(). Только зачем? В данном случае можно просто выполнить сравнение с символом (а не цифрой) 6.

Как вы уже, наверное, догадались, дополнительное слово else (переводится как «иначе») создает новую ветку выполнения кода, срабатывающую только тогда, когда пользователь введет что-то другое, не являющееся цифрой 6.

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

if n > 0:
____print(“Число положительное”)
elif n < 0:
____print(“Число отрицательное”)
else:
____print(“Ни то, ни сё”)

Как видите, в игру вступило новое слово elif – сокращение от else if, т.е. «иначе если». Его нужно использовать всегда, когда вариантов ветвления предполагается больше двух. Так как оно переводится как «иначе если», то логично, что после него пишется новое условие.

В сложных конструкциях ветвления else ставится всегда последним. Хотя оно и не обязательно, в принципе. Если в вашей программе ветвление основывается на каких-то конкретных условиях, то начинаем с if, а потом используем только elif.

Комменты приветствуются, за палец вверх - отдельное спасибо. Удачи!

------------------------------

Список уроков Программирование на Python для начинающих. Базовый уровень

Следующий урок Цикл for..in

Предыдущий урок Основы логических выражений

------------------------------

Задания

1. Дано число, обозначающее температуру воздуха. Вывести сообщение в зависимости от значений:

  • <-70 или > 60 - Мы все умрем
  • 40≤ t ≤60 Пекло
  • 30≤ t <40 Жара
  • 20 < t < 30 Тепло
  • 15 ≤ t ≤ 20 Прохладно
  • 5 < t < 15 Холодно
  • -5 ≤ t ≤ 5 Очень холодно
  • -10 ≤ t < -5 Морозец
  • -20 ≤ t < -10 Мороз
  • -30 ≤ t < -20 Сильный мороз
  • -60 ≤ t < -30 На улицу ни ногой

2. Дано число от 1 до 12, обозначающее номер месяца в году. Вывести название сезона года (зима, весна, лето, осень).

3. Даны 5 чисел, являющиеся оценками ученика по разным предметам. Определить его успеваемость по принципу:

  • все пятерки – отличник,
  • четверки или пятерки – хорошист,
  • тройки, четверки и пятерки – троечник,
  • есть двойки – двоечник.

4. Дан номер месяца от 1 до 12. Определить количество дней в этом месяце. Год не високосный.

5. Даны два целых числа d и m, определяющие номер дня в месяце (1..31) и номер месяца (1..12). Вывести дату, предшествующую указанной, в формате «дд.мм» (например, для 5 июня это будет 05.06). Год не високосный.

6. То же самое, но вывести дату, следующую за указанной. Год високосный.

7. Мастям игральных карт (колода из 36, начиная с шестерки) присвоены порядковые номера:

  1. пики
  2. трефы
  3. бубны
  4. червы

Достоинству карт, старших десятки, присвоены номера:

11. валет

12. дама

13. король

14. туз

Даны два целых числа n и m, соответственно, достоинство и масть. Вывести название соответствующей карты. Например, если даны 6 и 3, выводим «шестерка бубны».

8. Дано целое число в диапазоне 20-69, определяющее возраст (в годах). Вывести строку-описание указанного возраста, обеспечив правильное согласование числа со словом год, например:

  • 20 – двадцать лет,
  • 32 – тридцать два года,
  • 41 – сорок один год.

9. Дано целое число в диапазоне 100-999. Вывести строку-описание данного числа, например:

  • 256 – двести пятьдесят шесть,
  • 814 – восемьсот четырнадцать.

10. В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названием цвета:

1. зеленый

2. красный

3. желтый

4. белый

5. черный

В каждом подцикле годы носят название животных:

1. крысы

2. коровы

3. тигра

4. зайца

5. дракона

6. змеи

7. лошади

8. овцы

9. обезьяны

10. курицы

11. собаки

12. свиньи

По данному номеру года определить его название, если в начале цикла в 1984 г. год имел название «год зеленой крысы».