The Pragmatic Programmer

Appian, Pega, Java, DevSecOps, Quality Engineering

Building a Hangman Game in Python

import random


def choose_word():
    word_list = [
        "apple",
        "banana",
        "cherry",
        "dog",
        "elephant",
        "flower",
        "grape",
        "house",
        "icecream",
        "jungle",
    ]
    return random.choice(word_list)


def display_word(word, guessed_letters):
    display = ""
    for letter in word:
        if letter in guessed_letters:
            display += letter
        else:
            display += "_"
    return display


def hangman():
    word = choose_word()
    guessed_letters = []
    attempts = 6

    print("Welcome to Hangman!")

    while True:
        print("\n" + display_word(word, guessed_letters))
        guess = input("Guess a letter: ").lower()

        if guess in guessed_letters:
            print("You've already guessed that letter.")
            continue

        guessed_letters.append(guess)

        if guess not in word:
            attempts -= 1
            print(f"Wrong guess! You have {attempts} attempts left.")

            if attempts == 0:
                print(f"Sorry, you're out of attempts! The word was '{word}'.")
                break
        else:
            if all(letter in guessed_letters for letter in word):
                print(f"Congratulations! You guessed the word '{word}'!")
                break


hangman()