# Python Control Statements

> Learn how control statements work in Python using if, elif, and else to make decisions based on a condition, plus the inline if/else for one-line choices.

Author: Flavio Copes | Published: 2020-12-07 | Canonical: https://flaviocopes.com/python-control-statements/

What's interesting to do with booleans, and expressions that return a boolean in particular, is that we can make decisions and take different roads depending on their `True` or `False` value.

In [Python](https://flaviocopes.com/python-introduction/) we do so using the `if` statement:

```python
condition = True

if condition == True:
    # do something
```

When the condition test resolves to `True`, like in the above case, its block gets executed.

What is a block? A block is that part that is indented one level (4 spaces usually) on the right:

```python
condition = True

if condition == True:
    print("The condition")
    print("was true")
```

The block can be formed by a single line, or multiple lines as well, and it ends when you move back to the previous indentation level:

```python
condition = True

if condition == True:
    print("The condition")
    print("was true")

print("Outside of the if")
```

In combination with `if` you can have an `else` block, that's executed if the condition test of `if` results to `False`:

```python
condition = True

if condition == True:
    print("The condition")
    print("was True")
else:
    print("The condition")
    print("was False")
```

And you can have different linked `if` checks with `elif`, that's executed if the previous check was `False`:

```python
condition = True
name = "Roger"

if condition == True:
    print("The condition")
    print("was True")
elif name == "Roger":
    print("Hello Roger")
else:
    print("The condition")
    print("was False")
```

The second block in this case is executed if `condition` is `False`, and the `name` variable value is "Roger".

In a `if` statement you can have just one `if` and `else` checks, but multiple series of `elif` checks:

```python
condition = True
name = "Roger"

if condition == True:
    print("The condition")
    print("was True")
elif name == "Roger":
    print("Hello Roger")
elif name == "Syd":
    print("Hello Syd")
elif name == "Flavio":
    print("Hello Flavio")
else:
    print("The condition")
    print("was False")
```

`if` and `else` can also be used in an inline format, which lets us return a value or another based on a condition.

Example:

```python
a = 2
result = 2 if a == 0 else 3
print(result) # 3
```
