Bird
Raised Fist0
Pythonprogramming~15 mins

Random data generation in Python - Mini Project: Build & Apply

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Random Data Generation
📖 Scenario: You are working on a simple program that simulates rolling dice and picking random cards. This is useful in games and simulations where you need random choices.
🎯 Goal: Build a Python program that generates random numbers and random choices from a list using the random module.
📋 What You'll Learn
Use the random module
Generate a random integer between 1 and 6
Create a list of card suits
Pick a random suit from the list
Print the results
💡 Why This Matters
🌍 Real World
Random data generation is used in games, simulations, and testing to create unpredictable results.
💼 Career
Understanding random data helps in software testing, game development, and data science tasks.
Progress0 / 4 steps
1
Import the random module and create a list of card suits
Write code to import the random module and create a list called card_suits with these exact strings: 'Hearts', 'Diamonds', 'Clubs', 'Spades'.
Python
Hint

Use import random to bring in the random module. Then create a list named card_suits with the four suit names as strings.

2
Generate a random dice roll number
Create a variable called dice_roll and set it to a random integer between 1 and 6 using random.randint().
Python
Hint

Use random.randint(1, 6) to get a number like a dice roll.

3
Pick a random card suit from the list
Create a variable called random_suit and set it to a random choice from the card_suits list using random.choice().
Python
Hint

Use random.choice(card_suits) to pick one suit randomly.

4
Print the dice roll and the random card suit
Write two print statements to display the values of dice_roll and random_suit exactly as shown: Dice roll: {dice_roll} and Random suit: {random_suit} using f-strings.
Python
Hint

Use print(f"Dice roll: {dice_roll}") and print(f"Random suit: {random_suit}") to show the results.

Practice

(1/5)
1. What does the random.randint(a, b) function do in Python?
easy
A. Returns a random float between a and b
B. Returns a random integer N such that a ≤ N ≤ b
C. Returns a random element from a list
D. Shuffles the elements of a list in place

Solution

  1. Step 1: Understand the function purpose

    random.randint(a, b) generates a random integer between two given numbers a and b, inclusive.
  2. Step 2: Compare options with function behavior

    Returns a random integer N such that a ≤ N ≤ b correctly describes this behavior. Options A, C, and D describe other functions like random.uniform, random.choice, and random.shuffle.
  3. Final Answer:

    Returns a random integer N such that a ≤ N ≤ b -> Option B
  4. Quick Check:

    random.randint = random integer in range [OK]
Hint: randint returns integers between two numbers inclusive [OK]
Common Mistakes:
  • Confusing randint with random float functions
  • Thinking randint returns a list element
  • Mixing up randint with shuffle
2. Which of the following is the correct way to import the random module and use choice to pick a random element from a list items?
easy
A. import random; random.choice(items)
B. from random import randint; choice(items)
C. import random.choice; choice(items)
D. import random; random.randint(items)

Solution

  1. Step 1: Check import syntax

    To use choice, you must import the random module fully or import choice specifically. import random; random.choice(items) imports the module correctly.
  2. Step 2: Verify function usage

    import random; random.choice(items) calls random.choice(items), which is correct. from random import randint; choice(items) imports randint but tries to call choice without import. import random.choice; choice(items) has invalid import syntax. import random; random.randint(items) calls randint with a list, which is incorrect.
  3. Final Answer:

    import random; random.choice(items) -> Option A
  4. Quick Check:

    Correct import and call = import random; random.choice(items) [OK]
Hint: Import random module fully to use choice function [OK]
Common Mistakes:
  • Importing wrong functions
  • Calling functions without module prefix
  • Using randint instead of choice
3. What is the output of this code?
import random
items = ['apple', 'banana', 'cherry']
random.shuffle(items)
print(items)
medium
A. SyntaxError because shuffle returns a new list
B. ['apple', 'banana', 'cherry'] (always same order)
C. A new list with one random item from items
D. A randomly shuffled list of the original items

Solution

  1. Step 1: Understand random.shuffle behavior

    random.shuffle rearranges the list elements in place randomly. It does not return a new list.
  2. Step 2: Analyze the print output

    After shuffling, printing items shows the same list but with elements in random order. So output is a shuffled list, not the original order or a single item.
  3. Final Answer:

    A randomly shuffled list of the original items -> Option D
  4. Quick Check:

    shuffle changes list order in place [OK]
Hint: shuffle changes list order in place, no new list returned [OK]
Common Mistakes:
  • Expecting shuffle to return a new list
  • Thinking shuffle picks one random item
  • Assuming list order stays same
4. The following code tries to pick a random element from a list but causes an error. What is the problem?
import random
items = ['red', 'green', 'blue']
print(random.choice(items, 1))
medium
A. random.choice needs the list to be converted to a tuple
B. random.choice requires the list to be sorted first
C. random.choice does not take two arguments
D. random.choice only works with strings, not lists

Solution

  1. Step 1: Check random.choice function signature

    random.choice takes exactly one argument: a sequence (like a list). It returns one random element.
  2. Step 2: Identify the error cause

    The code passes two arguments (items and 1), which is invalid and causes a TypeError.
  3. Final Answer:

    random.choice does not take two arguments -> Option C
  4. Quick Check:

    choice takes one argument only [OK]
Hint: choice takes only one argument: the sequence [OK]
Common Mistakes:
  • Passing extra arguments to choice
  • Thinking choice returns multiple items
  • Confusing choice with sample
5. You want to generate a dictionary where keys are numbers from 1 to 5 and values are random integers between 10 and 20. Which code correctly does this?
hard
A. import random result = {i: random.randint(10, 20) for i in range(1, 6)}
B. import random result = {random.randint(10, 20): i for i in range(1, 6)}
C. import random result = {i: random.choice(range(10, 20)) for i in range(1, 6)}
D. import random result = dict(random.randint(10, 20) for i in range(1, 6))

Solution

  1. Step 1: Understand dictionary comprehension syntax

    We want keys as numbers 1 to 5 and values as random integers between 10 and 20. The syntax is {key: value for key in iterable}.
  2. Step 2: Check each option

    import random result = {i: random.randint(10, 20) for i in range(1, 6)} correctly uses i as key and random.randint(10, 20) as value for each i in 1 to 5.
    import random result = {random.randint(10, 20): i for i in range(1, 6)} swaps keys and values incorrectly.
    import random result = {i: random.choice(range(10, 20)) for i in range(1, 6)} uses random.choice(range(10, 20)) which produces integers 10-19 excluding 20, unlike randint(10,20).
    import random result = dict(random.randint(10, 20) for i in range(1, 6)) tries to convert a generator of integers to dict, which causes an error.
  3. Final Answer:

    import random result = {i: random.randint(10, 20) for i in range(1, 6)} -> Option A
  4. Quick Check:

    Correct dict comprehension with randint [OK]
Hint: Use dict comprehension with randint for random values [OK]
Common Mistakes:
  • Swapping keys and values
  • Using dict() on generator of ints
  • Using choice with range(10,20) excludes 20