I am new to Python and using some online resources to learn stuff. I am trying to wrap my head around a guessing game, but I am getting confused by one condition in the code.
secret_word = "giraffe"
guess = ""
guess_count = 0
guess_limit = 3
out_of_guesses = False
while guess != secret_word and not(out_of_guesses):
if guess_count < guess_limit:
guess = input("Enter a guess: ")
guess_count = 1
else:
out_of_guesses = True
if out_of_guesses:
print("You Lose!")
else:
print("You Win!")
I ma able to follow the code, but get lost at not(out_of_guesses) condition in the while loop. Can someone explain this part?
From what I understand, it says that when the secret_word is not equal to the guess and out_of_guess is true, keep looping, else break out of the loop. I am probably wrong. Can someone please help me understand this.
CodePudding user response:
Split into two parts, you have:
guess != secret_word
This means quess
does not equal secret_word
clearly
And
not(out_of_guesses)
not out_of_guesses
is checking that variable is False
Where not
flips the bool
into the opposite.
Example:
>>> x = False
>>> x
False
>>> not x
True
The and
means both conditions must be True
for the while
loop to run
Edit
You will leave the while
loop when at least one condition is False
.
The first condition will be False
when guess = input("Enter a guess: ")
is the secret_word
The second condition will be False
when out_of_guesses = True
(that line runs). Which will run when guess_count < guess_limit
CodePudding user response:
Your while
loop means: while guess
not equal to secret_word
and not out_of_guesses
- which means your out_of_guesses
must be false
=> so that not(out_of_guesses)
can be True
; then the loop keeps running, otherwise, breaking out of the loop.