Branching

  • so far: sequential execution of statemetns
  • branch
    • a group of statements are executed only if some something condition is true
    • boolean expression: evaluates to True or False
    • if is a reserved word
  • if else branches: else is a reserved word
  • if elseif else: elseif is a reserved
num = int(input("Enter an integer: "))
if num < 100:
    num = abs(num) * 10
else:
    num = num // 10
print(f'the value of num is {num}')

Boolean expressions

  • Boolean
    • is a type
    • two possible values: True or False
  • Boolean expression: evaluales to True or False
  • ==
    • equality operator returns True or False
  • !=
    • not equal operator returns True or False
user_num = int(input('Enter a number: '))
div_remainder = user_num % 2
if div_remainder == 0:
    print(f'{user_num} is even.')
else:
    print(f'{user_num} is odd.')

Multiple if-else branches

if dollars == 200:
   print "You have enough to go"
elif dollars == 150:
   print "You need 50 more"
elif dollars == 100:
   print "You have half of what you need"
else:
   print "You are not close"
print "Good bye!"

Relational operators

  • < less than
  • <= less than or equal
  • > greater than
  • >= greater than or equal

each returns True or False

number = int(input("Enter an integer: "))
if number < 0:
    print(number, "is negative")
else:
    print(number, "is not negative")
print("Until next time...")

Logical operators

  • and
  • or
  • not

each returns True or False

  • Precedence
    • ()
    • artihmetic as learned already
    • < <= > >= == !=
    • not
    • and
    • or

note: left to right when equal precedence

  • what is the value of each expression?
a = 3
b = 4
c = 5
 
print(a < b and b < c)
print(a < b or b < c)
print(a < b and b > c)
print(a < b or b > c)
print(not a < b)
print(a > b or not a > c and b > c)

Check understanding

  • how to check if cost is within the range of 200 to 2000. What is the boolean expression?
  • cost >= 200 and cost <= 2000

  • want to determine if it is good walking weather. Assume two variable temperature and perecentage chance of rain. What is an expression to determine if a good time to walk?

rain_chance = int(input("what is percentage chance of rain? "))
temperature= int(input("What is the current temperature? "))
if rain_chance <= 40 and (temperature > 32 and temperature < 90):
    print("enjoy your walk")
else:
    print("wait for another day")
  • what is wrong with this?
grade = 98
if (grade >= 90):
   print("You got an A!")
if (grade >= 80):
   print("You got a B!")
else:
   print("You got something else")

  • nested if statemetns
if num >= 0:
    if num == 0:
        print("Zero")
    else:
        print("Positive number")
else:
    print("Negative number")

Code Blocks and Indentation

  • identation matters
funds = int(input("Enter your account balance: "))
withdraw = int(input("How much cash do you need? "))
if funds > withdraw:
    print("You have the funds to continue")
funds = funds - withdraw
print(f'funds left {funds}')
  • why do we care about whitespace vs tabs?
  • autograders and testcases
  • precision is critical
    • = and ==
    • count from 0 to 10
      • what does that mean?
    • if cost < 100: vs if cost <= 100