I am making a Hangman game in Python. In the game, one python file has a function that selects a random string from an array and stores it in a variable. That variable is th
If a function does not return anything, e.g.:
def test():
pass
it has an implicit return value of None.
Thus, as your pick* methods do not return anything, e.g.:
def pickEasy():
word = random.choice(easyWords)
word = str(word)
for i in range(1, len(word) + 1):
wordCount.append("_")
the lines that call them, e.g.:
word = pickEasy()
set word to None, so wordInput in getInput is None. This means that:
if guess in wordInput:
is the equivalent of:
if guess in None:
and None is an instance of NoneType which does not provide iterator/iteration functionality, so you get that type error.
The fix is to add the return type:
def pickEasy():
word = random.choice(easyWords)
word = str(word)
for i in range(1, len(word) + 1):
wordCount.append("_")
return word
The python error says that wordInput is not an iterable -> it is of NoneType.
If you print wordInput before the offending line, you will see that wordInput is None.
Since wordInput is None, that means that the argument passed to the function is also None. In this case word. You assign the result of pickEasy to word.
The problem is that your pickEasy function does not return anything. In Python, a method that didn't return anything returns a NoneType.
I think you wanted to return a word, so this will suffice:
def pickEasy():
word = random.choice(easyWords)
word = str(word)
for i in range(1, len(word) + 1):
wordCount.append("_")
return word