I'm starting out with learning how to program in Python and created a Hangman game. I think there is a lot of unnecessary code but I am not sure how to improve it. I wanted to avoid using global variables but was not sure how to save the random word (as every time I called it in another function, it would be a different word).import random# Global Variablesd = {'barnyard':'place', 'airplane':'transportation', 'daughter':'loved     ones', 'vacuum':'object', 'elevator':'transportation', 'football':'sport', 'swimming':'sport', 'lemonade':'food and drink', 'handsome':'appearance', 'racoon':'animal'}randomWord = ''randomWordGenre = ''matchedChar = []displaySpaces = []characterList = []def main():    while True:        playAgain = ('y')        while playAgain == 'y':            gameLayout()            resetGame()            # Get random word, genre and split word into list.            getRandomWord()            getRandomWordGenre()            getCharacterList()            # Prompt user for level.            gameMode = input('Choose a level.')            if gameMode == 'easy':                numberOfGuesses = 10            elif gameMode == 'medium':                numberOfGuesses = 8            elif gameMode == 'hard':                numberOfGuesses = 7            # Display blank spaces and genre of word.            print('Genre: ' + randomWordGenre)            displayBlankSpaces()            joinDisplaySpaces()            # Run main game loop.            guesses = 0            while guesses < numberOfGuesses and checkChar() == False:                guess = input('Enter a character. You have ' + str(numberOfGuesses - guesses) + ' guesses left.')                matchGuess(guess)                addGuessedCharacters()                joinDisplaySpaces()                if checkChar() == True:                    print('Congratulations. You just won Hangman!')                elif matchGuess(guess) == False:                    guesses += 1            if guesses == numberOfGuesses:                print('Sorry, you lost.')            playAgain = input('Would you like to play again? (y/n)')        break# Game Layoutdef gameLayout():    print ('++++++++++++++++++Hangman++++++++++++++++++++++')    print ('===============================================')    print ('|--  Level  --|--  Tries  --|-- Hints Given --|')    print ('|--  Easy   --|--   10    --|--      2      --|')    print ('|--  Medium --|--    8    --|--      1      --|')    print ('|--  Hard   --|--    7    --|--      0      --|')# Reset game processes.def resetGame():    global randomWord, randomWordGenre, matchedChar, displaySpaces, numberOfCharacters, characterList    randomWord = ''    randomWordGenre = ''    matchedChar = []    displaySpaces = []    numberOfCharacters = 0    characterList = []# Get a random word from dictionary and store in global# variable getRandomWord[]def getRandomWord():    global randomWord    randomWord = random.choice(list(d.keys()))# Get genre from chose random word and store in global# variable randomWordGenre[]def getRandomWordGenre():    global randomWordGenre    randomWordGenre = d[randomWord]# Split string into character list and store in global# variable characterList[]def getCharacterList():    for char in range(0, len(randomWord)):        characterList.append(randomWord[char])# Check if user guess matches any character(s) of word and saves# index position(s) to global variable matchedChar[]def matchGuess(guess):    if guess in characterList:        index = 0        while index < len(randomWord):            index = randomWord.find(guess, index)            if index == -1:                break            matchedChar.append(index)            index += 1    else:        return False# Display blank spaces for # of characters in word and stores in# global variable displaySpaces[]def displayBlankSpaces():    for x in range (0, len(characterList)):        displaySpaces.append(_)    return displaySpaces# Add guessed characters to global variable displaySpaces[]def addGuessedCharacters():    for x in range (0, len(matchedChar)):        displaySpaces[matchedChar[x]] = randomWord[matchedChar[x]]# Check if all guessed characters match word and return True or False.def checkChar():    str1 = ''.join(str(e) for e in displaySpaces)    return str1 == randomWorddef joinDisplaySpaces():    str1 = ' '.join(str(e) for e in displaySpaces)    print (str1)main()
Simple game of Hangman in Python
python;beginner;python 3.x;hangman