Bird
Raised Fist0
Pythonprogramming~10 mins

Random data generation in Python - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import the module needed for random data generation.

Python
import [1]
Drag options to blanks, or click blank then click option'
Arandom
Bsys
Cmath
Dos
Attempts:
3 left
💡 Hint
Common Mistakes
Importing unrelated modules like sys or math instead of random.
2fill in blank
medium

Complete the code to generate a random integer between 1 and 10.

Python
num = random.[1](1, 10)
Drag options to blanks, or click blank then click option'
Arandom
Brandint
Crandrange
Dchoice
Attempts:
3 left
💡 Hint
Common Mistakes
Using random.choice which selects from a sequence, not a range of integers.
3fill in blank
hard

Fix the error in the code to select a random element from the list.

Python
item = random.[1](items)
Drag options to blanks, or click blank then click option'
Arandint
Brandrange
Cchoice
Dsample
Attempts:
3 left
💡 Hint
Common Mistakes
Using randint which returns an integer, not an element from a list.
4fill in blank
hard

Fill both blanks to create a list of 5 random integers between 1 and 20.

Python
numbers = [random.[1](1, 20) for [2] in range(5)]
Drag options to blanks, or click blank then click option'
Arandint
Bi
Cj
Drandrange
Attempts:
3 left
💡 Hint
Common Mistakes
Using randrange which excludes the upper bound, or confusing loop variable names.
5fill in blank
hard

Fill all three blanks to create a dictionary with words as keys and their lengths as values, only for words longer than 3 letters.

Python
lengths = {word: [1] for word in words if len(word) [2] 3 and word.[3]('a')}
Drag options to blanks, or click blank then click option'
Alen(word)
B>
Cstartswith
Dendswith
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong comparison operators or string methods like endswith instead of startswith.

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