Toggling a boolean variable
There are a variety of situations in which it is useful to toggle a boolean variable. For example, maybe you need to alternate between whether a light is green or red:
s_green = True
for _ in range(10):
if is_green:
print("green!")
else:
print("red!")
is_green = not is_green
The statement if is_green:
checks whether the variable is True
. Then the
statement:
is_green = not is_green
turns the variable from True
to False
, or from False
to True
, depending
on its current value.
Example
Here is an example where toggling a boolean variable is helpful. This code runs a game with two players. Each player takes a turn choosing an integer. The game ends when the sum of all numbers exceeds 100. The person with the highest individual sum wins.
# a simple method to get a response and convert it to an integer
def get_response(prompt):
response = int(input(prompt))
def play_easy_game():
is_first = True
total = 0
sum_a = 0
sum_b = 0
while total < 100:
if is_first:
# Player 1's turn -- get response and add to total and their sum
response = get_response('Player 1: ')
total += response
sum_a += response
else:
# Player 2's turn -- get response and add to total and their sum
response = get_response('Player 2: ')
total += response
sum_b += response
# alternate turns
is_first = not is_first
if sum_a > sum_b:
print('Player 1 wins!')
else:
print('Player 2 wins!')
play_easy_game()