Python Random Name Picker Example

A simple Python project can help you practice lists, user input, and basic randomness.

In this example, you will build a script that picks one random name from a list. This page focuses on how the script works and how to build it step by step, not on covering the full random module.

Quick example #

import random

names = ["Alice", "Bob", "Carlos", "Dina"]
chosen_name = random.choice(names)
print("Selected:", chosen_name)

Use random.choice() to return one item from a list. The list must not be empty.

What this example does #

This script:

  • Creates a list of names
  • Uses the random module
  • Selects one name at random
  • Prints the result

This is a useful beginner project because it combines a few core Python ideas in one short program.

Basic random name picker script #

Start with a fixed list of names.

import random

names = ["Alice", "Bob", "Carlos", "Dina"]

chosen_name = random.choice(names)

print("Selected:", chosen_name)

Expected output #

Your output will change each time you run the program. For example:

Selected: Carlos

or:

Selected: Alice

Why this works #

  • import random makes the random module available
  • names is a list containing several strings
  • random.choice(names) picks one item from that list
  • The result is stored in chosen_name
  • print() shows the selected name

If you are new to lists, see Python lists explained for beginners.

How the code works step by step #

Let’s break the script into small parts.

1. Import the random module #

import random

random is a built-in Python module used for random operations.

You need to import it before calling random.choice().

If you want a broader explanation later, see the Python random module overview.

2. Create a list of names #

names = ["Alice", "Bob", "Carlos", "Dina"]

A list lets you store multiple values in one variable.

Here, each item in the list is a name stored as a string.

3. Choose one random item #

chosen_name = random.choice(names)

random.choice(list_name) returns one random item from the list.

If you want to understand this function more clearly, see random.choice() explained.

4. Print the result #

print("Selected:", chosen_name)

This displays the randomly selected name.

Example with user input #

Instead of hard-coding the names, you can let the user type them.

The user will enter names separated by commas, such as:

Alice, Bob, Carlos, Dina

Then the program will:

  • Read the text
  • Split it into a list
  • Remove extra spaces
  • Pick one random name
import random

user_input = input("Enter names separated by commas: ")

names = user_input.split(",")
cleaned_names = [name.strip() for name in names]

chosen_name = random.choice(cleaned_names)

print("Selected:", chosen_name)

How this version works #

  • input() reads text from the user
  • split(",") turns one string into a list using commas
  • strip() removes extra spaces around each name
  • random.choice() picks one cleaned name

If you need help with these parts, see:

Handle empty input safely #

An empty list will cause an error with random.choice().

For example, this is unsafe if the user enters nothing useful:

import random

user_input = input("Enter names separated by commas: ")
names = [name.strip() for name in user_input.split(",")]

chosen_name = random.choice(names)
print("Selected:", chosen_name)

A safer version checks that the list actually contains names.

import random

user_input = input("Enter names separated by commas: ")

names = [name.strip() for name in user_input.split(",") if name.strip()]

if names:
    chosen_name = random.choice(names)
    print("Selected:", chosen_name)
else:
    print("No names were provided.")

Why this version is better #

  • if name.strip() removes blank entries
  • if names: checks that the list is not empty
  • The program prints a helpful message instead of failing

This is especially useful when the user enters:

  • an empty string
  • only spaces
  • commas with no real names

Useful beginner improvements #

Once the basic version works, try small changes.

Pick more than one name #

If you want multiple different names without duplicates, use random.sample().

import random

names = ["Alice", "Bob", "Carlos", "Dina"]
chosen_names = random.sample(names, 2)

print("Selected:", chosen_names)

This picks 2 different names from the list.

Prevent duplicate blank entries #

If the user types messy input, you can clean it more carefully:

user_input = input("Enter names separated by commas: ")
names = [name.strip() for name in user_input.split(",") if name.strip()]

print(names)

This removes empty items like "".

Repeat the selection in a loop #

You can let the program choose again and again:

import random

names = ["Alice", "Bob", "Carlos", "Dina"]

while True:
    print("Selected:", random.choice(names))
    
    again = input("Pick another name? (yes/no): ").strip().lower()
    if again != "yes":
        break

Use it in real situations #

This small script can be used for:

  • classroom activities
  • choosing a team member
  • picking a winner from a short list
  • simple games and practice projects

Common mistakes #

Here are some common problems beginners run into.

Forgetting to import random #

This will fail:

names = ["Alice", "Bob", "Carlos"]
print(random.choice(names))

Fix it by adding:

import random

Using random.choice() on an empty list #

This causes an error because there is nothing to choose.

Bad example:

import random

names = []
print(random.choice(names))

Fix it by checking the list first:

if names:
    print(random.choice(names))
else:
    print("The list is empty.")

Reading input but not splitting it #

This is wrong if you expect multiple names:

user_input = input("Enter names: ")
names = user_input

Here, names is still just one string.

Fix it with:

names = user_input.split(",")

Keeping extra spaces around names #

If the input is:

Alice, Bob, Carlos

then splitting alone may produce values with spaces, such as " Bob".

Fix it with strip():

names = [name.strip() for name in user_input.split(",")]

Misspelling choice #

This is incorrect:

random.choise(names)

The correct function name is:

random.choice(names)

Helpful debugging checks #

If your program is not working, print values to inspect them:

print(names)
print(type(names))
print(len(names))
print(repr(user_input))

These checks help you answer questions like:

  • Is names really a list?
  • Is the list empty?
  • Did the input contain extra spaces?
  • Did the program read what you expected?

FAQ #

How do I pick a random name from a list in Python? #

Use random.choice(your_list) after importing the random module.

Why does random.choice() fail? #

It usually fails because the list is empty or the random module was not imported correctly.

Can I let the user enter the names? #

Yes. Read input as text, split it by commas, clean spaces, and then choose from the resulting list.

How do I pick more than one random name? #

Use random.sample() if you want multiple different names without repeats.

See also #

Try changing this project next by:

  • accepting names from the user
  • repeating the pick in a loop
  • choosing multiple names without duplicates

Press Esc to close