# Ветвления. Подробнее о ветвлениях. Применение else и elif

Представьте коробку с шарами и робота. Робот знает, что шар 1 - красный, шар 2 - зеленый, шар 3 - желтый, шар 4 - синий. Если робот возьмет шар 1, то он определит, что этот шар красный, если робот возьмет шар 2, то он определит, что этот шар - зеленый и т.д. Давайте реализуем программу, которая будет брать шар, который мы зададим , а потом определять его цвет. Напишем программу для этого:

```python
sphere = int(input('Введите номер шара: ')) # Считываем sphere

# Сравнения
if sphere == 1:
    print('red')
    
if sphere == 2:
    print('green')
    
if sphere == 3:
    print('yellow')
    
if sphere == 4:
    print('blue')
```

{% hint style="info" %}
С помощью `#` в Python обозначаются комментарии - обычно описание работы кода.
{% endhint %}

Программа отлично работает, но что, если мы введем в командную строку число 5? Или же числа, которые не являются 1, 2,3 или 4? Для этого в Python существует `else`. Код выполняет все, что содержится в `else`, если условия выше не совпадают. К примеру:

```python
number = int(input())

if number == 1:
    print('You are lucky!') 
    
else: # Если условия выше не выполнены, то:
    print(':/')
```

Но исходя из логики можно заметить, что на один `if` приходится один `else`. В коде с шарами и в коде с калькулятором сложения мы использовали ветвления неправильно, т.к. у нас по факту было одно ветвление, а исходя из логики мы использовали много ветвлений. Поэтому в Python есть `elif`.

```python
sphere = int(input('Введите номер шара: ')) # Считываем sphere

# Сравнения
if sphere == 1:
    print('red')
    
elif sphere == 2:
    print('green')
    
elif sphere == 3:
    print('yellow')
    
elif sphere == 4:
    print('blue')
    
else:
    print('Такого шара нет в моей системе')
```

{% hint style="info" %}
`elif sphere == 1`в Python обозначает "else if", то есть "если верхнее условие не выполнилось, то если sphere == 1, то это условие выполнится и т.д. Но если же в конце ни одно из условий не выполнилось, то код попадает в `else`.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vanproskur.gitbook.io/fastpy/vetvleniya.-podrobnee-o-vetvleniyakh.-primenenie-else-i-elif.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
