I am writing a simple program for a homework problem and It seems to be skipping my if statement. I have looked at other questions posed, and the problems there do not seem to b
Replace if i in secretWord == False:
with if i not in secretWord
The other answers explain the error in the code well, but you can simplify your code a bit like this:
def isWordGuessed(secretWord, lettersGuessed):
for i in lettersGuessed or ['_']: # uses ['_'] when lettersGuessed = []
if not i in secretWord:
return False
return True
You can do also do this with a generator expression and all()
:
def isWordGuessed(secretWord, lettersGuessed):
return all([i in secretWord for i in lettersGuessed] or [False])
if i in secretWord == False:
This doesn't do what you think it does. If you want this path to be taken when i
isn't in secretWord
, you want
if i not in secretWord:
What you have does a chained comparison. First, it checks
i in secretWord
If that's true, it then checks
secretWord == False
If that's true (which it won't be), it then takes the if
path.
Wouldnt it be the same just doing:
``
def isWordGuessed(secretWord, lettersGuessed):
if not lettersGuessed:
return False
for i in lettersGuessed:
if i not in secretWord:
return False
return True
What your doing is called chained comparisons.
Edit: My bad, too late
BR Daniel