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
Step 1: Understand the function purpose
random.randint(a, b) generates a random integer between two given numbers a and b, inclusive.
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.
Final Answer:
Returns a random integer N such that a ≤ N ≤ b -> Option B
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
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.
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.
Final Answer:
import random; random.choice(items) -> Option A
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
Step 1: Understand random.shuffle behavior
random.shuffle rearranges the list elements in place randomly. It does not return a new list.
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.
Final Answer:
A randomly shuffled list of the original items -> Option D
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
Step 1: Check random.choice function signature
random.choice takes exactly one argument: a sequence (like a list). It returns one random element.
Step 2: Identify the error cause
The code passes two arguments (items and 1), which is invalid and causes a TypeError.
Final Answer:
random.choice does not take two arguments -> Option C
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))
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}.
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.
Final Answer:
import random
result = {i: random.randint(10, 20) for i in range(1, 6)} -> Option A
Quick Check:
Correct dict comprehension with randint [OK]
Hint: Use dict comprehension with randint for random values [OK]