Python Projects for Kids

1.) Mad Libs

    - Allows a user to respond to prompts and then generates a Mad Lib
    from the user's answers.
    - Concepts:
        - Multiline strings
        - Getting user input
        - `f-strings`
        - Printing data

Running app: Mad Libs

2.) Guess The Number

    - Allows a user to guess a number between 1 and 10 and tells them
    if they are too high or too low. The user can keep guessing the
    number until they get it right. At the end, the user is told how
    many turns it took them to guess the number.
    - Concepts:
        - Random numbers
        - Boolean values
        - Counter-controlled repetition with `for` loops
        - Conditional logic
        - Incrementing a value in a variable
        - Converting user input to `int`

Running app: Guess The Number

3.) Random Nickname Generator

    - Allows a user to enter a first and last name and then displays a 
    full name with the random nickname in the middle.
    - Concepts:
        - Modules
        - Variables
        - Multiline strings
        - Comments
        - Printing
        - Getting user input
        - Using `f-strings`
        - Lists
        - Getting random values from a list

Running app: Random Nickname Generator

4.) Quiz App

    - Allows a user to take a quiz and keeps track of correct/incorrect
    answers. Displays different messages based on the number of answers
    the user got correct.
    - Concepts:
        - Dictionaries
        - Looping through dictionaries
        - Using `len()` to get the length of a sequence
        - Incrementing a numeric value
        - Conditional statements

Running app: Programming Languages Quiz

5.) Strong Password Generator

    - Allows a user to enter the desired password length and then 
    creates a secure password with random letters, numbers, and 
    punctuation.
    - Concepts:
        - The `string` module
        - Generating random integers
        - Creating named constants for options
        - `for` loops
            - Only showing counter-controlled repetition with
            the `range()` function here
        - Conditional statements
        - Building `str` with `+=`
        - Converting user input to `int` with `int()`

Running app: Strong Password Generator

6.) Python Chatbot

    - Allows a user to interact with a Chatbot, which will respond
    to certain standard commands and do things like give the user
    a random fact, perform math, etc.
    - Concepts:
        - Conditional statements
        - Selecting random items from a list
        - Indefinite looping
        - Ending a loop with the `break` statement
        - `str` methods
        - Lists

Running app: Python Chatbot

7.) Atbash Cipher

    - Allows a user to enter a message, and then returns the encrypted 
    or decrypted version using the Atbash Cipher. 
    - Concepts:
        - User-defined functions 
            - Function parameters, return values
        - Looping through a sequence with `for` loops
        - Complex conditional statements
        - Membership testing with the `in` operator
        - `str` methods
        - Indexing `str`
        - Method chaining

Running app: Atbash Cipher

8.) Video Game Browser

    - Allows a user to view a large list of video games with their
    release dates, titles, and platform. The user can search through
    the data by keyword to get information about a game matching the
    search term.
    - Concepts:
        - Reading CSV files
        - Multiple assignment
        - Building a list by iterating through a sequence
        - Indefinite loops
        - Conditional statements
        - f-strings

Running app: Video Game Browser

9.) Random Dad Jokes

    - Allows a user to get random Dad jokes consisting of a setup
    and punchline from a Dad Jokes API.
    - Concepts:
        - Requesting data from an API
        - Parsing JSON data
        - Dictionaries
        - User-defined functions
        - Indefinite loops
        - Conditional statements
        - User input

Running app: Random Dad Jokes

10.) Current Weather App

    - Allows a user to get the current temperature, conditions, 
    and wind speed for any city they wish.
    - Concepts:
        - Requesting data from an API that requires an API key
        - Parsing JSON data
        - Dictionaries
        - User-defined functions
        - Indefinite loops
        - Encoding query parameters

Running app: Current Weather App