From 778607ebbef7ca5694845921973f947b8d5049ae Mon Sep 17 00:00:00 2001 From: Jiggly-Balls Date: Sun, 18 Oct 2026 19:07:23 +0530 Subject: [PATCH 1/7] Added chapter 7 - finished introduction & if statement --- .../chapters/07-conditional-statements.md | 153 ++++++++++++++++++ docs/python-tutorial/chapters/index.md | 2 +- zensical.toml | 1 + 3 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 docs/python-tutorial/chapters/07-conditional-statements.md diff --git a/docs/python-tutorial/chapters/07-conditional-statements.md b/docs/python-tutorial/chapters/07-conditional-statements.md new file mode 100644 index 0000000..4498b0e --- /dev/null +++ b/docs/python-tutorial/chapters/07-conditional-statements.md @@ -0,0 +1,153 @@ +--- +description: Conditional Statements and Control Flow in Python. +--- + +# Conditional Statements + +When developing programs, we often need our code to execute certain instructions _conditionally_. +Let's take a simple banking program as an example. + +Our task is to ask the user how much money they have so they can open a bank account. If they have +less than `$25`, we print a message declining the request. If they have `$25` or more, we accept the +money and deposit it into their new account. + +One way of doing this problem is like so: + +```python +bank_amount = 0 + +print("Welcome to Practical Python Bank!") +print("Let's open you an account for you!") + +current_amount = int(input("How much money do you have (in dollars)? ")) +# Don't forget to convert user input to an integer +# so we can compare it with another integer. + +if current_amount >= 25: + bank_amount += current_amount + current_amount = 0 + + print("You have successfully opened a bank account!") + print("All your money has been deposited.") + print(f"You have ${bank_amount} in your account.") + +else: + print("Sorry, you cannot open an account.") + print("You need at least $25 dollars to open a bank account.") +``` + +Running the program and entering a number below 25 gives us: + +``` +Welcome to Practical Python Bank! +Let's open you an account! +How much money do you have (in dollars)? 10 +Sorry, you cannot open an account. +You need at least $25 dollars to open a bank account. +``` + +Now let's enter a value of 25 or more: + +``` +Welcome to Practical Python Bank! +Let's open you an account! +How much money do you have (in dollars)? 25 +You have successfully opened a bank account! +All your money has been deposited. +You have $25 in your account. +``` + +!!! warning + + When entering input, type only the number itself, with no `$` symbol or other characters. The + `int()` function can only convert strings that look like whole numbers (such as `"25"`), so text or + symbols (such as `"$25"` or `"twenty"`) will make it fail with an error. The same applies to + `float()`, which accepts numbers like `"12.5"`. + +The code almost reads like plain English! If you don't understand what's going on immediately, it's +alright. We'll take it apart and see what each piece is doing. First, the `if` statement. + +## `if` Condition Statement + +This is the starting block of any conditional statement. Its general syntax is: + +``` +if : + +``` + +!!! note + + In programming, syntax refers to the grammar of a language. Just as grammar lets us form coherent + sentences in human languages, syntax tells the computer how to read our code. + +The `if` condition statement only runs the `` within it when the `` is `True`. Here's an +example: + +```python +if True: + print("Hi") + print("Running from the True statement") + print("Good bye!") + +if False: + print("Hello") + print("Running from the False statement") + print("See you later!") +``` + +Upon running this code, we get the following output: + +```text +Hi +Running from the True statement +Good bye! +``` + +The code within the `if False:` statement never ran. + +One important thing you may have noticed so far is the indentation (the four spaces in front of each +`print` calls). In Python, indentation is what tells the computer that "this block of code belongs +to this statement". + +
+ +![Image title](/static/python-tutorial/07-conditional-statements-01.png){ width="640" } + +
+ +A quick way to remember when you need to apply indentation is to look out for colons (`:`). If a +statement ends with a colon, it means that the next line must be indented one level further. Python +recommends 1 indent to consist of 4 spaces. + +!!! warning + + You can press the ++tab++ key to place indents in your code. Depending on the code editor you use, + it can either place spaces or a single `Tab` character. If your editor places a `Tab` character, + make sure to change it to spaces. + +From the previous chapter we have learned about how Comparison Operators return a bool. The same +concept is being used here. Let's take a look at an example and an animation that explains how it +works. + +```python +print("Program start") + +age = 15 + +if age >= 13: + print("Is teenager") + +if age >= 18: + print("Is an adult") + +print("Program end") +``` + +When you run your code, this is how Python would interpret it: + +
+ +![Image title](/static/python-tutorial/07-conditional-statements-02.gif){ width="640" } + +
diff --git a/docs/python-tutorial/chapters/index.md b/docs/python-tutorial/chapters/index.md index 2015e9b..efb24c5 100644 --- a/docs/python-tutorial/chapters/index.md +++ b/docs/python-tutorial/chapters/index.md @@ -15,7 +15,7 @@ in-depth Python features. - [Builtin Functions pt 1 (`print`, `input` & type casting)](04-built-in-functions-pt01.md) - [String Interpolation & Concatenation (f-strings, `str.format` & `+`)](05-string-functions.md) - [Operators pt 1 (Comparison & Arithmetic)](06-operators-pt01.md) -- Conditional Statements (`if`, `else` & `elif`) +- [Conditional Statements (`if`, `else` & `elif`)](07-conditional-statements.md) - Operators & Conditional Statements pt 2 (Logical operators) - Data Types pt 2 (`list` & `tuple`) - Data Types pt 3 (dictionary) diff --git a/zensical.toml b/zensical.toml index f7276fe..cbe6bb4 100644 --- a/zensical.toml +++ b/zensical.toml @@ -27,6 +27,7 @@ nav = [ "python-tutorial/chapters/04-built-in-functions-pt01.md", "python-tutorial/chapters/05-string-functions.md", "python-tutorial/chapters/06-operators-pt01.md", + "python-tutorial/chapters/07-conditional-statements.md", ] }, { "Resources" = [ "resources/index.md", From 2c357149940e14168bf322927791ede33ab82221 Mon Sep 17 00:00:00 2001 From: Jiggly-Balls Date: Sun, 18 Oct 2026 19:08:02 +0530 Subject: [PATCH 2/7] Added indentation & condional statement animation --- .../07-conditional-statements-01.png | Bin 0 -> 3463 bytes .../07-conditional-statements-02.gif | Bin 0 -> 15947 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/static/python-tutorial/07-conditional-statements-01.png create mode 100644 docs/static/python-tutorial/07-conditional-statements-02.gif diff --git a/docs/static/python-tutorial/07-conditional-statements-01.png b/docs/static/python-tutorial/07-conditional-statements-01.png new file mode 100644 index 0000000000000000000000000000000000000000..78f2761b9bd2daf8852e713241723ba330a98cf3 GIT binary patch literal 3463 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 KTfOJ#hra;>MsC>v literal 0 HcmV?d00001 diff --git a/docs/static/python-tutorial/07-conditional-statements-02.gif b/docs/static/python-tutorial/07-conditional-statements-02.gif new file mode 100644 index 0000000000000000000000000000000000000000..33ded379488eaf8fe090b28babc51971e2cae022 GIT binary patch literal 15947 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 Date: Fri, 23 Oct 2026 15:57:24 +0530 Subject: [PATCH 3/7] Added conditional statement animations --- .../07-conditional-statements-03.gif | Bin 0 -> 14252 bytes .../07-conditional-statements-04.gif | Bin 0 -> 15505 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/static/python-tutorial/07-conditional-statements-03.gif create mode 100644 docs/static/python-tutorial/07-conditional-statements-04.gif diff --git a/docs/static/python-tutorial/07-conditional-statements-03.gif b/docs/static/python-tutorial/07-conditional-statements-03.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce711362bb0bb258d41667faf74b95d44b7f0f25 GIT binary patch literal 14252 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 literal 0 HcmV?d00001 diff --git a/docs/static/python-tutorial/07-conditional-statements-04.gif b/docs/static/python-tutorial/07-conditional-statements-04.gif new file mode 100644 index 0000000000000000000000000000000000000000..1504032cf13ea42012f591edbd1eaeb9979a0b63 GIT binary patch literal 15505 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 g0kXf8 Date: Fri, 23 Oct 2026 15:57:51 +0530 Subject: [PATCH 4/7] Finished chapter 7 - conditional statemnets --- .../chapters/07-conditional-statements.md | 477 +++++++++++++++++- 1 file changed, 469 insertions(+), 8 deletions(-) diff --git a/docs/python-tutorial/chapters/07-conditional-statements.md b/docs/python-tutorial/chapters/07-conditional-statements.md index 4498b0e..79dd083 100644 --- a/docs/python-tutorial/chapters/07-conditional-statements.md +++ b/docs/python-tutorial/chapters/07-conditional-statements.md @@ -17,7 +17,7 @@ One way of doing this problem is like so: bank_amount = 0 print("Welcome to Practical Python Bank!") -print("Let's open you an account for you!") +print("Let's open you an account!") current_amount = int(input("How much money do you have (in dollars)? ")) # Don't forget to convert user input to an integer @@ -33,7 +33,7 @@ if current_amount >= 25: else: print("Sorry, you cannot open an account.") - print("You need at least $25 dollars to open a bank account.") + print("You need at least $25 to open a bank account.") ``` Running the program and entering a number below 25 gives us: @@ -43,7 +43,7 @@ Welcome to Practical Python Bank! Let's open you an account! How much money do you have (in dollars)? 10 Sorry, you cannot open an account. -You need at least $25 dollars to open a bank account. +You need at least $25 to open a bank account. ``` Now let's enter a value of 25 or more: @@ -72,7 +72,7 @@ alright. We'll take it apart and see what each piece is doing. First, the `if` s This is the starting block of any conditional statement. Its general syntax is: ``` -if : +if : ``` @@ -81,8 +81,8 @@ if : In programming, syntax refers to the grammar of a language. Just as grammar lets us form coherent sentences in human languages, syntax tells the computer how to read our code. -The `if` condition statement only runs the `` within it when the `` is `True`. Here's an -example: +The `if` condition statement only runs the `` within it when the `` is `True`. Here's +an example: ```python if True: @@ -112,7 +112,7 @@ to this statement".
-![Image title](/static/python-tutorial/07-conditional-statements-01.png){ width="640" } +![Conditional Statements](/static/python-tutorial/07-conditional-statements-01.png){ width="640" }
@@ -136,7 +136,7 @@ print("Program start") age = 15 if age >= 13: - print("Is teenager") + print("Is a teenager") if age >= 18: print("Is an adult") @@ -151,3 +151,464 @@ When you run your code, this is how Python would interpret it: ![Image title](/static/python-tutorial/07-conditional-statements-02.gif){ width="640" } + +```text +Program start +Is a teenager +Program end +``` + +!!! note + + This program isn't perfect. There are some glaring issues, can you notice them before we fix it in + the next subtopics? + +## `else` Condition Statement + +The else statement runs when the condition of the if directly above it is False. Its general syntax +is: + +```text +if : + +else: + +``` + +`` only executes when the `` of the `if` statement is `False`. Let's look at a few +examples to get familiar with it. + +=== "Example 1" + + ```python + if False: + print("if statement executed") + else: + print("else statement executed") + ``` + + Output: + + ```text + else statement executed + ``` + +=== "Example 2" + + ```python + if False: + print("if statement 1 executed") + if False: + print("if statement 2 executed") + else: + print("else statement executed") + ``` + + Output: + + ```text + else statement executed + ``` +=== "Example 3" + + ```python + if True: + print("if statement 1 executed") + if False: + print("if statement 2 executed") + else: + print("else statement executed") + ``` + + Output: + + ```text + if statement 1 executed + else statement executed + ``` + +=== "Example 4" + + ```python + if True: + print("if statement 1 executed") + if True: + print("if statement 2 executed") + else: + print("else statement executed") + ``` + + Output: + + ```text + if statement 1 executed + if statement 1 executed + ``` + +=== "Example 5" + + ```python + if 5 > 1: + print("Five is greater than one") + else: + print("Five is not greater than one") + ``` + + Output: + + ```text + Five is greater than one + ``` + +--- + +!!! note + An `else` always belongs to the `if` directly above it, and it can't stand on its own. Writing an + `else` without an `if` before it raises a `SyntaxError`. + +Now that we are familiar with its syntax, let's take a look at our example from the previous +section. + +```python +print("Program start") + +age = 15 + +if age >= 13: + print("Is a teenager") + +if age >= 18: + print("Is an adult") + +print("Program end") +``` + +You may have noticed a few problems with it. If not, assume `age` is `7` instead. What would be the +output then? Once you have figured it out, check your answer in the collapsible block below: + +??? note "Output" + + ```text + Program start + Program end + ``` + +### Fixing our age program (v1) + +As you can see, that is _not_ the output we'd like. We would still want the program to print +_something_. This is where our `else` statement can help us. + +```python +print("Program start") + +age = 7 + +if age >= 18: + print("Is an adult") + +if age >= 13: + print("Is a teenager") + +else: + print("Is below 13") + +print("Program end") +``` + +Output: + +```text +Program start +Is below 13 +Program end +``` + +Our program still isn't perfect. Try finding the issue by tweaking the value of the `age` variable. + +## Nesting Conditional Statements + +An `if` or `else` block can contain any code, including other `if` and `else` statements. Placing a +conditional statement inside another one is called **nesting**. The inner statement only gets +checked if the outer one allows its block to run. + +Our previous example still had one problem in it. What if the `age` variable was, let's say, 25? + +```python +print("Program start") + +age = 25 + +if age >= 18: + print("Is an adult") + +if age >= 13: + print("Is a teenager") + +else: + print("Is below 13") + +print("Program end") +``` + +Its output would be: + +```text +Program start +Is an adult +Is a teenager +Program end +``` + +This is wrong again. We would like the program to only print out `Is an adult` for ages `18` and +above. But that doesn't seem to be the case since the age satisfies both conditions. + +Let's look at how nested conditional statements helps solve this with different values. + +### Fixing our age program (v2) + +=== "For age = 25" + + ```python + print("Program start") + + age = 25 + + if age >= 18: + print("Is an adult") + else: + if age >= 13: + print("Is a teenager") + else: + print("Is below 13") + + print("Program end") + ``` + +
+ + ![Nested Statements 01](/static/python-tutorial/07-conditional-statements-03.gif){ width="640" } + +
+ + Gives us the output: + + ``` + Program start + Is an adult + Program end + ``` + +=== "For age = 15" + + ```python + print("Program start") + + age = 15 + + if age >= 18: + print("Is an adult") + else: + if age >= 13: + print("Is a teenager") + else: + print("Is below 13") + + print("Program end") + ``` + +
+ + ![Nested Statements 2](/static/python-tutorial/07-conditional-statements-04.gif){ width="640" } + +
+ + Output: + + ``` + Program start + Is a teenager + Program end + ``` + +--- + +!!! note + + There's no limit to how deeply you can nest statements, but each level adds more indentation and + makes the code harder to follow. If you find yourself nesting more than two or three levels deep, + there is usually a cleaner way to write it. We'll look at one in the next section. + +## `elif` Statement + +The `elif` statement is a combination of `else` and `if` with a cleaner syntax. As always, let's +have a look at its syntax: + +```text +if : + +elif : + +``` + +`` only executes when the `` of the `if` is `False` **and** the `` of the +`elif` is `True`. + +In a series of regular `if` statements, each statement is independent of the others. But `if` and +`elif` statements are dependent on each other. This is because the pseudocode above is the same as: + +```text +if : + +else: + if : + +``` + +Remember the `else:` followed by an indented `if` from our nested example? `elif` is just a shorter +way of writing it. + +### Fixing our age program (v3) + +Let's rewrite our age program using `elif`: + +```python +print("Program start") + +age = 25 + +if age >= 18: + print("Is an adult") +elif age >= 13: + print("Is a teenager") +else: + print("Is below 13") + +print("Program end") +``` + +This does exactly the same thing as our nested version, but with no extra indentation. + +Take `age = 25`. Python checks `age >= 18`, finds it `True`, and runs that block. It then skips the +`elif` and `else` entirely, without even checking `age >= 13`. With `age = 15`, the first condition +is `False`, so Python moves on to the `elif`, which is `True`, so it runs that block and skips the +`else`. Only when every condition above is `False` does the `else` run. + +### Using multiple `elif` statements + +You can chain as many `elif` statements as you need between the `if` and the `else`: + +```text +if : + +elif : + +elif : + +else: + +``` + +Python checks the conditions from top to bottom, and runs the block of the **first** condition that +is `True`. Every other block in the chain is skipped, even if its condition would also have been +`True`. Let's take a grading program as an example: + +```python +score = 85 + +if score >= 90: + print("Grade: A") +elif score >= 80: + print("Grade: B") +elif score >= 70: + print("Grade: C") +else: + print("Grade: F") +``` + +Output: + +```text +Grade: B +``` + +A score of `85` is also greater than or equal to `70`, but Python never gets that far. It stops at +the first `True` condition, `score >= 80`. + +!!! warning + + Because Python stops at the first `True` condition, the **order** of your conditions matters. What + do you think happens if we check the smaller age first? + + ```python + age = 25 + + if age >= 13: + print("Is a teenager") + elif age >= 18: + print("Is an adult") + ``` + + Output: + + ```text + Is a teenager + ``` + + `25 >= 13` is `True`, so Python runs the first block and never reaches `age >= 18`. The adult block + can never run for any value. When using ranges like this, check the most specific (or highest) + condition first. + +### `if` vs `elif` + +Let's compare the two with the same value, `age = 25`: + +=== "Separate `if` statements" + + ```python + age = 25 + + if age >= 18: + print("Is an adult") + if age >= 13: + print("Is a teenager") + ``` + + Output: + + ```text + Is an adult + Is a teenager + ``` + +=== "`if` and `elif`" + + ```python + age = 25 + + if age >= 18: + print("Is an adult") + elif age >= 13: + print("Is a teenager") + ``` + + Output: + + ```text + Is an adult + ``` + +--- + +With separate `if` statements, every condition is checked on its own, so more than one block can +run. With `elif`, the chain stops after the first match. Use separate `if` statements when the +checks are unrelated, and `elif` when you want exactly one outcome out of several. + +!!! note + + A conditional chain follows these rules: + + - It must start with exactly one `if`. + - It can have as many `elif` statements as you need, all placed after the `if`. + - It can end with at most one `else`, which is optional and always comes last. + + An `elif` or `else` without an `if` before it raises a `SyntaxError`. From 10caaae6659793a77a8e9461f9a54617f0f6bebf Mon Sep 17 00:00:00 2001 From: Jiggly-Balls Date: Tue, 27 Oct 2026 18:12:34 +0530 Subject: [PATCH 5/7] Fix errors --- .../chapters/07-conditional-statements.md | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/docs/python-tutorial/chapters/07-conditional-statements.md b/docs/python-tutorial/chapters/07-conditional-statements.md index 79dd083..85f10b8 100644 --- a/docs/python-tutorial/chapters/07-conditional-statements.md +++ b/docs/python-tutorial/chapters/07-conditional-statements.md @@ -123,10 +123,10 @@ recommends 1 indent to consist of 4 spaces. !!! warning You can press the ++tab++ key to place indents in your code. Depending on the code editor you use, - it can either place spaces or a single `Tab` character. If your editor places a `Tab` character, - make sure to change it to spaces. + it can either place spaces or a single tab character. If your editor places a tab character, make + sure to change it to spaces. -From the previous chapter we have learned about how Comparison Operators return a bool. The same +From the previous chapter, we have learned about how comparison operators return a bool. The same concept is being used here. Let's take a look at an example and an animation that explains how it works. @@ -135,16 +135,16 @@ print("Program start") age = 15 -if age >= 13: - print("Is a teenager") - if age >= 18: print("Is an adult") +if age >= 13: + print("Is a teenager") + print("Program end") ``` -When you run your code, this is how Python would interpret it: +When you run your code, this is how Python will interpret it:
@@ -160,7 +160,7 @@ Program end !!! note - This program isn't perfect. There are some glaring issues, can you notice them before we fix it in + This program isn't perfect. There are some glaring issues; can you notice them before we fix it in the next subtopics? ## `else` Condition Statement @@ -242,7 +242,7 @@ examples to get familiar with it. ```text if statement 1 executed - if statement 1 executed + if statement 2 executed ``` === "Example 5" @@ -263,6 +263,7 @@ examples to get familiar with it. --- !!! note + An `else` always belongs to the `if` directly above it, and it can't stand on its own. Writing an `else` without an `if` before it raises a `SyntaxError`. @@ -274,12 +275,12 @@ print("Program start") age = 15 -if age >= 13: - print("Is a teenager") - if age >= 18: print("Is an adult") +if age >= 13: + print("Is a teenager") + print("Program end") ``` @@ -453,8 +454,8 @@ elif : `` only executes when the `` of the `if` is `False` **and** the `` of the `elif` is `True`. -In a series of regular `if` statements, each statement is independent of the others. But `if` and -`elif` statements are dependent on each other. This is because the pseudocode above is the same as: +In a series of regular `if` statements, each statement is independent of the others. But `if`- and +`elif`-statements are dependent on each other. This is because the pseudocode above is the same as: ```text if : From 51d849958b6a3e61b919ef839488ec10364b9ca5 Mon Sep 17 00:00:00 2001 From: Jiggly-Balls Date: Tue, 27 Oct 2026 19:16:14 +0530 Subject: [PATCH 6/7] Added truthy & falsy values explaination --- .../chapters/07-conditional-statements.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/docs/python-tutorial/chapters/07-conditional-statements.md b/docs/python-tutorial/chapters/07-conditional-statements.md index 85f10b8..4f256ee 100644 --- a/docs/python-tutorial/chapters/07-conditional-statements.md +++ b/docs/python-tutorial/chapters/07-conditional-statements.md @@ -613,3 +613,91 @@ checks are unrelated, and `elif` when you want exactly one outcome out of severa - It can end with at most one `else`, which is optional and always comes last. An `elif` or `else` without an `if` before it raises a `SyntaxError`. + +## Truthy and Falsy Values + +In Python, every value can be treated as a bool. Values that aren't actually a bool are considered +either truthy (they behave like `True`) or falsy (they behave like `False`). Let's take a +look at what exactly makes a value one or the other. + +Any non-empty string, or in the case of integers and floats, any number other than `0`, is +considered truthy. + +The opposite is true for falsy values. An empty string, or the number `0` (or `0.0`), is considered +falsy. + +We can confirm this by using the `bool()` function. It takes in a value of any data type and +converts it into a bool, following the rules above. This is type casting again, just like `int()` +and `str()`. + +```python +print(bool(100)) +print(bool(-330)) +print(bool(0)) + +print() # Prints out an empty line + +print(bool(0.0)) +print(bool(0.1)) + +print() + +print(bool("This is a non-empty string.")) +print(bool("")) +print(bool("0")) # This is a string, and it's non-empty. +``` + +Its output is as follows: + +```text +True +True +False + +False +True + +True +False +True +``` + +!!! warning + + The string `"0"` is **truthy**, even though the number `0` is falsy. Only a completely empty + string (`""`) is falsy. The same goes for `"False"`, which is just text, and a string containing + only a space (`" "`). + +### Using truthy and falsy values in conditions + +So far, we have placed bools and comparisons (like `age >= 18`) after an `if`. But an `if` statement +actually accepts _any_ value and implicitly converts it into a bool. This lets us skip the comparison +in some cases. + +A common use is checking whether the user typed anything at all: + +```python +name = input("Enter your name: ") + +if name: + print(f"Hello, {name}!") +else: + print("You didn't enter a name.") +``` + +If the user types `Alan`, `name` is `"Alan"`, which is a non-empty string and therefore truthy: + +```text +Enter your name: Alan +Hello, Alan! +``` + +If the user just presses ++enter++, `name` is `""`, which is falsy, so the `else` block runs: + +```text +Enter your name: +You didn't enter a name. +``` + +This is the same as writing `if name != "":`, only shorter. Both are correct, so use whichever you +find easier to read. From ba66a252955d66dfb4f9b6b98b696ad8ba23a396 Mon Sep 17 00:00:00 2001 From: Jiggly-Balls Date: Thu, 29 Oct 2026 21:57:47 +0530 Subject: [PATCH 7/7] Fixed the code in animation --- .../07-conditional-statements-02.gif | Bin 15947 -> 15678 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/static/python-tutorial/07-conditional-statements-02.gif b/docs/static/python-tutorial/07-conditional-statements-02.gif index 33ded379488eaf8fe090b28babc51971e2cae022..b9a6085b3be3e1f1ee75bcbac7b858f894c5b997 100644 GIT binary patch delta 9813 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 MOmC*49g_I}0cneCBme*a delta 11247 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