Python - Conditional Statements, Logical Operators, Code Blocks, and Scope

Python - Conditional Statements, Logical Operators, Code Blocks, and Scope

100 Days of Code: The Complete Python - Day 03

ยท

14 min read

Todays Goal:

print("Welcome to Treasure Island.")
print("Your mission is to find the treasure.")

#Write your code below this line ๐Ÿ‘‡

choice1 = input('You\'re at a cross road. Where do you want to go? Type "left" or "right" \n').lower()
if choice1 == "left":
  choice2 = input('You\'ve come to a lake. There is an island in the middle of the lake. Type "wait" to wait for a boat. Type "swim" to swim across. \n').lower()
  if choice2 == "wait":
    choice3 = input("You arrive at the island unharmed. There is a house with 3 doors. One red, one yellow and one blue. Which colour do you choose? \n").lower()
    if choice3 == "red":
      print("It's a room full of fire. Game Over.")
    elif choice3 == "yellow":
      print("You found the treasure! You Win!")
    elif choice3 == "blue":
      print("You enter a room of beasts. Game Over.")
    else:
      print("You chose a door that doesn't exist. Game Over.")
  else:
    print("You get attacked by an angry trout. Game Over.")
else:
  print("You fell into a hole. Game Over.")

Control Flow with if / else and Conditional Operators python

In Python, you can use the if and else statements along with conditional operators to create control flow in your code. Conditional operators allow you to compare values and make decisions based on the result of the comparison.

Here's an example of using if and else with conditional operators:

x = 10

if x > 5:
    print("x is greater than 5")
else:
    print("x is not greater than 5")

In this example, the variable x is assigned a value of 10. The if statement checks if x is greater than 5 using the > operator. If the condition is true, it executes the code block under the if statement, which prints "x is greater than 5". If the condition is false, it executes the code block under the else statement, which prints "x is not greater than 5".

You can also use other conditional operators such as < (less than), >= (greater than or equal to), <= (less than or equal to), == (equal to), and != (not equal to) to compare values.

Additionally, you can combine multiple conditions using logical operators such as and, or, and not:

x = 10

if x > 5 and x < 20:
    print("x is between 5 and 20")
else:
    print("x is not between 5 and 20")

In this example, the if statement checks if x is greater than 5 and less than 20. If both conditions are true, it executes the code block under the if statement. Otherwise, it executes the code block under the else statement.

By using if, else, and conditional operators, you can control the flow of your code based on different conditions and make your program more dynamic and responsive.

Example:

print("Welcome to the rollercoaster!")
height  = int(input("What is your height in cm? "))

if height >= 120:
  print("You can ride the rollercoaster!")
else:
   print("Sorry, you have to grow taller before you can ride.")

output:

Welcome to the rollercoaster!
What is your height in cm? 100
Sorry, you have to grow taller before you can ride.

Explanation:

In the code you provided, the program prompts the user for their height in centimeters using the input() function. The input is then converted to an integer using the int() function and stored in the variable height.

The program then uses an if statement to check if the value of height is greater than or equal to 120. If the condition is true, meaning the person's height is 120 cm or taller, it prints "You can ride the rollercoaster!". Otherwise, if the condition is false, meaning the person's height is less than 120 cm, it prints "Sorry, you have to grow taller before you can ride."

In the example output you provided, the user enters a height of 100 cm, which is less than 120 cm. Therefore, the condition in the if statement evaluates to false, and the program executes the code block under the else statement, printing "Sorry, you have to grow taller before you can ride."

Nested if statements and elif statements

Nested if statements and elif statements in Python allow you to create more complex conditional structures by adding additional levels of conditions and branching.

Nested if statements are if statements that are placed inside another if or else block. This allows for more granular control and the ability to check for multiple conditions.

Here's an example of using nested if statements:

x = 10
y = 5

if x > 5:
    print("x is greater than 5")
    if y > 2:
        print("y is greater than 2")

In this example, the outer if statement checks if x is greater than 5. If the condition is true, it prints "x is greater than 5" and then enters the inner if statement. The inner if statement checks if y is greater than 2. If the condition is true, it prints "y is greater than 2".

Note that the inner if statement is only executed if the outer if condition is true. If the outer if condition is false, the inner if statement is skipped entirely.

On the other hand, elif statements allow you to check multiple conditions sequentially, providing an alternative option if the previous conditions are not met.

Here's an example of using elif statements:

x = 10

if x < 5:
    print("x is less than 5")
elif x < 10:
    print("x is less than 10 but greater than or equal to 5")
else:
    print("x is greater than or equal to 10")

In this example, the program checks the value of x against multiple conditions using elif statements. It first checks if x is less than 5. If the condition is true, it prints "x is less than 5". If the condition is false, it moves to the next elif statement, which checks if x is less than 10. If this condition is true, it prints "x is less than 10 but greater than or equal to 5". If neither of the previous conditions is true, the program executes the code block under the else statement, printing "x is greater than or equal to 10".

By using nested if statements and elif statements, you can create more intricate conditional structures to handle various scenarios and conditions in your code.

Multiple if Statements in Succession

Using multiple if statements in succession allows you to check multiple conditions independently. Each if statement is evaluated separately, regardless of the outcome of the previous if statements. This can be useful when you want to perform different actions based on multiple conditions.

Here's an example of using multiple if statements in succession:

x = 10

if x > 5:
    print("x is greater than 5")

if x < 15:
    print("x is less than 15")

if x % 2 == 0:
    print("x is even")

In this example, there are three separate if statements. The first if statement checks if x is greater than 5 and prints "x is greater than 5" if the condition is true. The second if statement checks if x is less than 15 and prints "x is less than 15" if the condition is true. The third if statement checks if x is even (i.e., divisible by 2) using the modulo operator (%) and prints "x is even" if the condition is true.

Note that each if statement is evaluated independently. Even if one if statement is true, the others will still be evaluated. In the example, since x is both greater than 5 and less than 15, both corresponding messages will be printed.

Using multiple if statements in succession gives you more flexibility in handling different conditions separately. However, keep in mind that if the conditions are related or mutually exclusive, you may want to consider using elif statements to create a more structured and efficient conditional flow.

Example:

print("Welcome to the rollercoaster!")
height = int(input("What is your height in cm? "))
bill = 0

if height >= 120:
  print("You can ride the rollercoaster!")
  age = int(input("What is your age? "))
  if age < 12:
    bill = 5
    print("Child tickets are $5.")
  elif age <= 18:
    bill = 7
    print("Youth tickets are $7.")
  else:
    bill = 12
    print("Adult tickets are $12.")

  wants_photo = input("Do you want a photo taken? Y or N. ")
  if wants_photo == "Y":
    bill += 3

  print(f"Your final bill is ${bill}")

else:
  print("Sorry, you have to grow taller before you can ride.")

Output:

Welcome to the rollercoaster!
What is your height in cm? 120
You can ride the rollercoaster!
What is your age? 29
Adult tickets are $12.
Do you want a photo taken? Y or N. y
Your final bill is $12

n the provided code, multiple if statements are used in succession to handle different conditions and perform various actions based on those conditions.

Let's go through the code step by step:

  1. The program starts by printing the "Welcome to the rollercoaster!" message.

  2. The user is prompted to enter their height in centimeters, and the input is stored in the height variable as an integer.

  3. The first if statement checks if the height is greater than or equal to 120. If the condition is true, it proceeds to the code block under this if statement. Otherwise, it jumps to the else block and prints "Sorry, you have to grow taller before you can ride."

  4. Inside the first if block, the program prints "You can ride the rollercoaster!" because the height condition is met.

  5. The user is then prompted to enter their age, and the input is stored in the age variable as an integer.

  6. The nested if-elif-else structure is used to determine the ticket price based on the age of the rider. If the age is less than 12, the code block under the first if statement in this nested structure executes, and the bill variable is set to 5, and "Child tickets are $5." is printed. If the age is between 12 and 18 (inclusive), the code block under the elif statement executes, and the bill variable is set to 7, and "Youth tickets are $7." is printed. Otherwise, if none of the previous conditions are met, the code block under the else statement executes, and the bill variable is set to 12, and "Adult tickets are $12." is printed.

  7. The user is asked whether they want a photo taken, and their response is stored in the wants_photo variable.

  8. The program uses another if statement to check if the user wants a photo taken (wants_photo == "Y"). If the condition is true, the bill variable is incremented by 3.

  9. Finally, the program prints the final bill by using an f-string and displays "Your final bill is $" followed by the value of the bill variable.

In the example output you provided, the user enters a height of 120, which satisfies the condition of the first if statement. The program proceeds to ask for the age, and the user enters 29. Since the age is not less than 12 or between 12 and 18, the code block under the else statement in the nested structure executes. The program then asks if the user wants a photo taken, and they respond with "y". The final bill is calculated as $12, and the program prints "Your final bill is $12" accordingly.

Using multiple if statements in succession allows for a more detailed and flexible handling of different conditions in your code. Each if statement is evaluated independently, allowing you to perform specific actions based on the condition being true.

Logical Operators

Logical operators in Python allow you to combine or manipulate boolean values. The three main logical operators are and, or, and not. They are used to create more complex boolean expressions by combining multiple conditions.

Here's an explanation of each logical operator:

  1. and: The and operator returns True if both the left-hand side and the right-hand side of the operator are True. Otherwise, it returns False.

     x = 5
     y = 10
    
     if x > 0 and y > 0:
         print("Both x and y are positive numbers.")
    

    In this example, the condition x > 0 evaluates to True and the condition y > 0 also evaluates to True. Since both conditions are True, the message "Both x and y are positive numbers." will be printed.

  2. or: The or operator returns True if either the left-hand side or the right-hand side of the operator is True. It returns False only if both sides are False.

     x = 5
     y = -2
    
     if x > 0 or y > 0:
         print("At least one of x or y is a positive number.")
    

    In this example, the condition x > 0 evaluates to True and the condition y > 0 evaluates to False. Since at least one condition is True, the message "At least one of x or y is a positive number." will be printed.

  3. not: The not operator negates the boolean value of a condition. If the condition is True, not returns False. If the condition is False, not returns True.

     x = 5
    
     if not x > 10:
         print("x is not greater than 10.")
    

    In this example, the condition x > 10 evaluates to False. The not operator negates the value, resulting in True. Therefore, the message "x is not greater than 10." will be printed.

These logical operators can be used to create more complex conditions by combining multiple expressions. They help you control the flow of your code based on various conditions and make your programs more flexible and robust.

Example:

print("Welcome to the rollercoaster!")
height = int(input("What is your height in cm? "))
bill = 0

if height >= 120:
  print("You can ride the rollercoaster!")
  age = int(input("What is your age? "))
  if age < 12:
    bill = 5
    print("Child tickets are $5.")
  elif age <= 18:
    bill = 7
    print("Youth tickets are $7.")
  elif age >= 45 and age <= 55:
    print("Everything is going to be ok. Have a free ride on us!")
  else:
    bill = 12
    print("Adult tickets are $12.")

  wants_photo = input("Do you want a photo taken? Y or N. ")
  if wants_photo == "Y":
    bill += 3

  print(f"Your final bill is ${bill}")

else:
  print("Sorry, you have to grow taller before you can ride.")

Output:

Welcome to the rollercoaster!
What is your height in cm? 121
You can ride the rollercoaster!
What is your age? 13
Youth tickets are $7.
Do you want a photo taken? Y or N. y
Your final bill is $7

In the provided code, logical operators are used to introduce additional conditions for determining the ticket price and offering a free ride. Let's explain the use of logical operators in the code:

  1. The first logical operator used is the and operator (and age >= 45 and age <= 55). This condition is placed within the elif statement and checks if the age is between 45 and 55 (inclusive). If the age satisfies this condition, the message "Everything is going to be ok. Have a free ride on us!" is printed. This demonstrates that the person within the specified age range receives a special offer, without requiring a specific ticket price.

  2. The second logical operator used is the equality operator (==). It is used to check if the user wants a photo taken by comparing the input (wants_photo) with the string "Y". If the user enters "Y", the condition wants_photo == "Y" evaluates to True, and the bill is increased by 3 using the += operator.

These logical operators allow for additional conditions to be checked and actions to be taken based on those conditions. In the example output you provided, the person's height is 121 cm, which is greater than or equal to 120 cm, so they can ride the rollercoaster. Their age is 13, falling within the range specified by the elif statement (age <= 18), resulting in the message "Youth tickets are $7." being printed. The user wants a photo taken, so the final bill is $7.

Day -3 Assignment

Try to achieve Treasure Island Game

print("Welcome to Treasure Island.")
print("Your mission is to find the treasure.")

#Write your code below this line ๐Ÿ‘‡

choice1 = input('You\'re at a cross road. Where do you want to go? Type "left" or "right" \n').lower()
if choice1 == "left":
  choice2 = input('You\'ve come to a lake. There is an island in the middle of the lake. Type "wait" to wait for a boat. Type "swim" to swim across. \n').lower()
  if choice2 == "wait":
    choice3 = input("You arrive at the island unharmed. There is a house with 3 doors. One red, one yellow and one blue. Which colour do you choose? \n").lower()
    if choice3 == "red":
      print("It's a room full of fire. Game Over.")
    elif choice3 == "yellow":
      print("You found the treasure! You Win!")
    elif choice3 == "blue":
      print("You enter a room of beasts. Game Over.")
    else:
      print("You chose a door that doesn't exist. Game Over.")
  else:
    print("You get attacked by an angry trout. Game Over.")
else:
  print("You fell into a hole. Game Over.")

Output:

Welcome to Treasure Island.
Your mission is to find the treasure.
You're at a cross road. Where do you want to go? Type "left" or "right" 
left
You've come to a lake. There is an island in the middle of the lake. Type "wait" to wait for a boat. Type "swim" to swim across. 
wait
You arrive at the island unharmed. There is a house with 3 doors. One red, one yellow and one blue. Which colour do you choose? 
yellow
You found the treasure! You Win!

If you miss The 100 days of the Python - Day - 01 see here

If you miss The 100 days of the Python - Day - 02 see here

#100DaysofCode #Python

Did you find this article valuable?

Support Ganesh Balimidi by becoming a sponsor. Any amount is appreciated!

ย