Python Script to create random jokes using pyjokes

Are you looking to add some humor to your Python scripts or applications? The pyjokes library allows you to effortlessly generate random jokes in various categories and languages. This article will show you how to install pyjokes, generate different types of jokes, and create a complete joke generator script.

Installing pyjokes

Before we can start creating random jokes, we need to install the pyjokes library using pip ?

pip install pyjokes

Note: pyjokes works offline and doesn't require an internet connection during execution. The jokes are included with the library installation.

Basic Joke Generation

Let's start with generating a simple random joke ?

import pyjokes

# Generate a random joke
joke = pyjokes.get_joke()
print(joke)
Why do programmers prefer dark mode? Because light attracts bugs!

Generating Jokes by Category

pyjokes supports different categories of jokes. You can specify a category to get more targeted humor ?

import pyjokes

# Get a programming-specific joke
programming_joke = pyjokes.get_joke(category='programming')
print("Programming joke:", programming_joke)

# Get a general joke  
general_joke = pyjokes.get_joke(category='general')
print("General joke:", general_joke)
Programming joke: How many programmers does it take to change a light bulb? None, that's a hardware problem.
General joke: I told my wife she was drawing her eyebrows too high. She looked surprised.

Language Support

pyjokes supports multiple languages. You can generate jokes in different languages using the language parameter ?

import pyjokes

# English joke (default)
english_joke = pyjokes.get_joke(language='en')
print("English:", english_joke)

# German joke
german_joke = pyjokes.get_joke(language='de')
print("German:", german_joke)

# Spanish joke
spanish_joke = pyjokes.get_joke(language='es')
print("Spanish:", spanish_joke)
English: Why do Java developers wear glasses? Because they can't C#!
German: Warum tragen Java-Entwickler eine Brille? Weil sie nicht C# können!
Spanish: ¿Por qué los desarrolladores de Java usan anteojos? ¡Porque no pueden ver C#!

Complete Joke Generator Script

Here's a comprehensive script that demonstrates various pyjokes features ?

import pyjokes

def generate_single_joke(category='programming', language='en'):
    """Generate a single random joke"""
    try:
        joke = pyjokes.get_joke(category=category, language=language)
        return joke
    except Exception as e:
        return f"Error generating joke: {e}"

def generate_multiple_jokes(count=3, category='programming', language='en'):
    """Generate multiple random jokes"""
    jokes = []
    for i in range(count):
        try:
            joke = pyjokes.get_joke(category=category, language=language)
            jokes.append(f"{i+1}. {joke}")
        except Exception as e:
            jokes.append(f"{i+1}. Error: {e}")
    return jokes

def main():
    print("? Welcome to the Python Joke Generator! ?")
    print("=" * 50)
    
    # Single joke example
    print("\n--- Single Programming Joke ---")
    joke = generate_single_joke()
    print(joke)
    
    # Multiple jokes example
    print("\n--- Three Random Jokes ---")
    jokes = generate_multiple_jokes(count=3, category='general')
    for joke in jokes:
        print(joke)
        print("-" * 40)
    
    # Different language example
    print("\n--- German Programming Joke ---")
    german_joke = generate_single_joke(language='de')
    print(german_joke)

if __name__ == '__main__':
    main()
? Welcome to the Python Joke Generator! ?
==================================================

--- Single Programming Joke ---
Why do programmers hate nature? It has too many bugs.

--- Three Random Jokes ---
1. I haven't slept for ten days, because that would be too long.
----------------------------------------
2. Why don't scientists trust atoms? Because they make up everything!
----------------------------------------
3. I'm reading a book about anti-gravity. It's impossible to put down!
----------------------------------------

--- German Programming Joke ---
Warum mögen Programmierer die Natur nicht? Sie hat zu viele Bugs.

Available Categories and Languages

Here's a summary of available options in pyjokes ?

Category Description
programming Programming and tech-related jokes
general General humor and everyday jokes
Language Code Language
en English (default)
de German
es Spanish
it Italian

Interactive Joke Generator

Here's an interactive version that lets users choose their preferences ?

import pyjokes

def interactive_joke_generator():
    print("? Interactive Joke Generator ?")
    
    # Get user preferences
    categories = ['programming', 'general']
    languages = ['en', 'de', 'es', 'it']
    
    print(f"Available categories: {', '.join(categories)}")
    category = input("Choose category (default: programming): ").strip().lower()
    if not category or category not in categories:
        category = 'programming'
    
    print(f"Available languages: {', '.join(languages)}")
    language = input("Choose language (default: en): ").strip().lower()
    if not language or language not in languages:
        language = 'en'
    
    try:
        count = int(input("How many jokes do you want? (1-5): "))
        count = max(1, min(count, 5))  # Limit between 1-5
    except ValueError:
        count = 1
    
    print(f"\n? Generating {count} {category} joke(s) in {language.upper()}:")
    print("=" * 50)
    
    for i in range(count):
        try:
            joke = pyjokes.get_joke(category=category, language=language)
            print(f"\n{i+1}. {joke}")
        except Exception as e:
            print(f"\n{i+1}. Sorry, couldn't generate joke: {e}")

# For demo purposes, let's simulate the interactive function
def demo_interactive():
    """Demo version with preset values"""
    category = 'programming'
    language = 'en'
    count = 2
    
    print(f"? Generating {count} {category} joke(s) in {language.upper()}:")
    print("=" * 50)
    
    for i in range(count):
        joke = pyjokes.get_joke(category=category, language=language)
        print(f"\n{i+1}. {joke}")

demo_interactive()
? Generating 2 programming joke(s) in EN:
==================================================

1. How do you comfort a JavaScript bug? You console it.

2. Why do programmers prefer iOS development? Because the Swift is strong with this one.

Conclusion

The pyjokes library provides a simple and entertaining way to add humor to your Python applications. With support for multiple categories and languages, you can easily generate jokes that fit your audience and context. Use it in chatbots, CLI tools, or any application that could benefit from a touch of humor.

Updated on: 2026-03-27T12:07:31+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements