Python3 If Statement
## Python if Statement
In Python programming, the `if` statement is the most fundamental and essential control flow structure. It is used to evaluate whether a specific condition is true or false, and then decide whether to execute a block of code accordingly.
Python's `if` statement is highly intuitive and readable. It uses indentation to define code blocks, which is one of Python's most distinctive features compared to other programming languages.
---
## Syntax and Parameters
The `if` statement is an independent control structure that works in conjunction with conditional expressions.
### Syntax Format
```python
if conditional_expression:
# Code block to execute if the condition is True
statement_1
statement_2
```
### Syntax Details
* **Conditional Expression**: Any expression that evaluates to a Boolean value (`True` or `False`). In Python, non-zero numbers, non-empty strings, and non-empty containers (lists, dictionaries, tuples) are evaluated as implicit truths (`True`).
* **The Colon (`:`)**: A colon must always follow the conditional expression. It signals the start of the nested code block.
* **Indentation**: The code block following the colon must be indented (typically using 4 spaces). All indented lines belong to the `if` statement's sub-block.
### Return Value / Side Effects
* **No Return Value**: The `if` statement is a control flow statement, not a function, so it does not return any value.
* **Effect**: If the condition evaluates to `True`, the indented code block is executed. If it evaluates to `False`, the code block is skipped entirely.
---
## Code Examples
Let's explore the usage of the `if` statement through a series of examples ranging from basic to advanced.
### Example 1: Basic Usage - Comparing Numbers
```python
# Basic if statement
age = 18
if age >= 18:
print("Adult")
print("Program finished")
```
**Expected Output:**
```text
Adult
Program finished
```
**Code Analysis:**
1. `age >= 18` is the conditional expression, which evaluates to `True`.
2. Because the condition is met, the indented block `print("Adult")` is executed.
3. `print("Program finished")` is not indented under the `if` statement, meaning it is outside the conditional block and will execute regardless of the condition.
---
### Example 2: Checking for Empty Strings (Truth Value Testing)
```python
# Checking string truthiness
name = ""
# An empty string evaluates to False in a boolean context
if name:
print(f"Hello, {name}")
else:
print("Please enter a name")
# A non-empty string evaluates to True
name = "Tom"
if name:
print(f"Hello, {name}")
```
**Expected Output:**
```text
Please enter a name
Hello, Tom
```
**Code Analysis:**
* In Python, empty collections and sequences (such as empty strings `""`, empty lists `[]`, and empty dictionaries `{}`) are implicitly evaluated as `False` in conditional checks.
* Any non-empty sequence or container evaluates to `True`.
---
### Example 3: Multiple and Chained Conditions
```python
# Compound conditional checks
score = 85
# Using logical operators
if score >= 60 and score < 90:
print("Passed")
# Checking multiple conditions using chained comparison (Pythonic way)
if 60 <= score < 90:
print("Score is between 60 and 90")
# Using the 'in' operator to check membership
colors = ["red", "green", "blue"]
if "red" in colors:
print("Contains red")
```
**Expected Output:**
```text
Passed
Score is between 60 and 90
Contains red
```
**Code Analysis:**
* Python supports **chained comparisons** (e.g., `60 <= score < 90`), which makes range checks cleaner and more readable than using explicit `and` operators.
* The `in` operator is used to check whether a specific element exists within a sequence (like a list, tuple, or string).
---
### Example 4: Single-Line if Expression (Ternary Operator)
Python provides a concise way to write conditional assignments in a single line, acting as a ternary operator.
```python
# Python's ternary expression
age = 20
# Format: value_if_true if condition else value_if_false
result = "Adult" if age >= 18 else "Minor"
print(result) # Output: Adult
# A more complex example
x = 10
y = 20
max_val = x if x > y else y
print(f"The larger value is: {max_val}") # Output: The larger value is: 20
```
**Expected Output:**
```text
Adult
The larger value is: 20
```
**Code Analysis:**
* The syntax for Python's ternary operator is `value_if_true if condition else value_if_false`. It is highly readable and ideal for simple conditional assignments.
---
## Considerations and Best Practices
1. **Consistent Indentation**: Python relies strictly on indentation to define code blocks. Mixing tabs and spaces will result in an `IndentationError`. It is highly recommended to use exactly 4 spaces per indentation level.
2. **Avoid Redundant Comparisons**: Do not explicitly compare boolean values to `True` or `False`.
* *Bad*: `if condition == True:`
* *Good*: `if condition:`
3. **Leverage Implicit Truthiness**: Take advantage of Python's built-in truth value testing. Instead of checking if a list's length is greater than zero (`if len(my_list) > 0:`), simply write `if my_list:`.
YouTip