PYnative

Python Programming

  • Learn Python
  • Exercises
  • Quizzes
  • Code Editor
  • Tricks
Home » Python Exercises » Python random Data generation Exercise

Python random Data generation Exercise

Updated on: December 8, 2021 | 13 Comments

This Python exercise will help you to practice random data generation techniques. This exercise question focuses on generating random numbers, choices, and samples using the random module and secrets module.

Also Read: Python Random Data Generation Quiz

This exercise includes:

  • 10 questions.
  • The solution is provided at the end of each question.
  • When you complete each question, you will be more familiar with random data generation techniques in Python.

Refer to the following tutorials to solve the exercise.

  • Generating Random data in Python.
  • Secure Random data in Python.

Use Online Code Editor to solve each question.

Table of contents

  • Exercise 1: Generate 3 random integers between 100 and 999 which is divisible by 5
  • Exercise 2: Random Lottery Pick. Generate 100 random lottery tickets and pick two lucky tickets from it as a winner.
  • Exercise 3: Generate 6 digit random secure OTP
  • Exercise 4: Pick a random character from a given String
  • Exercise 5: Generate random String of length 5
  • Exercise 6: Generate a random Password which meets the following conditions
  • Exercise 7: Calculate multiplication of two random float numbers
  • Exercise 8: Generate random secure token of 64 bytes and random URL
  • Exercise 9: Roll dice in such a way that every time you get the same number
  • Exercise 10: Generate a random date between given start and end dates

Exercise 1: Generate 3 random integers between 100 and 999 which is divisible by 5

Reference article for help: Python get a random number within a range

Show Solution
import random

print("Generating 3 random integer number between 100 and 999 divisible by 5")
for num in range(3):
    print(random.randrange(100, 999, 5), end=', ')

Exercise 2: Random Lottery Pick. Generate 100 random lottery tickets and pick two lucky tickets from it as a winner.

Note you must adhere to the following conditions:

  • The lottery number must be 10 digits long.
  • All 100 ticket number must be unique.

Hint: Generate a random list of 1000 numbers using randrange() and then use the sample() method to pick lucky 2 tickets.

Show Solution
import random

lottery_tickets_list = []
print("creating 100 random lottery tickets")
# to get 100 ticket
for i in range(100):
    # ticket number must be 10 digit (1000000000, 9999999999)
    lottery_tickets_list.append(random.randrange(1000000000, 9999999999))
# pick 2 luck tickets
winners = random.sample(lottery_tickets_list, 2)
print("Lucky 2 lottery tickets are", winners)

Exercise 3: Generate 6 digit random secure OTP

Reference article for help:

  • Python secrets module to generate secure numbers
  • Python get a random number within a range
Show Solution
import secrets

#Getting systemRandom class instance out of secrets module
secretsGenerator = secrets.SystemRandom()

print("Generating 6 digit random OTP")
otp = secretsGenerator.randrange(100000, 999999)

print("Secure random OTP is ", otp)

Exercise 4: Pick a random character from a given String

Reference article for help: random.choice()

Show Solution
import random

name = 'pynative'
char = random.choice(name)
print("random char is ", char)

Exercise 5: Generate random String of length 5

Note: String must be the combination of the UPPER case and lower case letters only. No numbers and a special symbol.

Reference article for help: Generate random String in Python.

Show Solution
import random
import string

def randomString(stringLength):
    """Generate a random string of 5 charcters"""
    letters = string.ascii_letters
    return ''.join(random.choice(letters) for i in range(stringLength))

print ("Random String is ", randomString(5) )

Exercise 6: Generate a random Password which meets the following conditions

  • Password length must be 10 characters long.
  • It must contain at least 2 upper case letters, 1 digit, and 1 special symbol.

Reference article for help: Generate random String and Password in Python

Show Solution
import random
import string

def randomPassword():
    randomSource = string.ascii_letters + string.digits + string.punctuation
    password = random.sample(randomSource, 6)
    password += random.sample(string.ascii_uppercase, 2)
    password += random.choice(string.digits)
    password += random.choice(string.punctuation)

    passwordList = list(password)
    random.SystemRandom().shuffle(passwordList)
    password = ''.join(passwordList)
    return password

print ("Password is ", randomPassword())

Exercise 7: Calculate multiplication of two random float numbers

Note:

  • First random float number must be between 0.1 and 1
  • Second random float number must be between 9.5 and 99.5

Reference article for help: Generate a random float number between a float range

Show Solution
import random

num1  = random.random()
print("First Random float is ", num1)
num2 = random.uniform(9.5, 99.5)
print("Second Random float is ", num1)

num3 = num1 * num2
print("Multiplication is ", num3)

Exercise 8: Generate random secure token of 64 bytes and random URL

Reference article for help: Python secrets module to generate a secure token and URL

Show Solution
import secrets

print("Random secure Hexadecimal token is ", secrets.token_hex(64))
print("Random secure URL is ", secrets.token_urlsafe(64))

Exercise 9: Roll dice in such a way that every time you get the same number

Dice has 6 numbers (from 1 to 6). Roll dice in such a way that every time you must get the same output number. do this 5 times.

Reference article for help:

  • How to seed random number generator
  • random.choice()
Show Solution
import random

dice = [1, 2, 3, 4, 5, 6]
print("Randomly selecting same number of a dice")
for i in range(5):
    random.seed(25)
    print(random.choice(dice))

Exercise 10: Generate a random date between given start and end dates

Show Solution
import random
import time

def getRandomDate(startDate, endDate ):
    print("Printing random date between", startDate, " and ", endDate)
    randomGenerator = random.random()
    dateFormat = '%m/%d/%Y'

    startTime = time.mktime(time.strptime(startDate, dateFormat))
    endTime = time.mktime(time.strptime(endDate, dateFormat))

    randomTime = startTime + randomGenerator * (endTime - startTime)
    randomDate = time.strftime(dateFormat, time.localtime(randomTime))
    return randomDate

print ("Random Date = ", getRandomDate("1/1/2016", "12/12/2018"))

Filed Under: Python, Python Exercises, Python Random

Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.

TweetF  sharein  shareP  Pin

About Vishal

Founder of PYnative.com I am a Python developer and I love to write articles to help developers. Follow me on Twitter. All the best for your future Python endeavors!

Related Tutorial Topics:

Python Python Exercises Python Random

Python Exercises and Quizzes

Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.

  • 15+ Topic-specific Exercises and Quizzes
  • Each Exercise contains 10 questions
  • Each Quiz contains 12-15 MCQ
Exercises
Quizzes

Posted In

Python Python Exercises Python Random
TweetF  sharein  shareP  Pin

 Python Exercises

  • Python Exercises Home
  • Basic Exercise for Beginners
  • Input and Output Exercise
  • Loop Exercise
  • Functions Exercise
  • String Exercise
  • Data Structure Exercise
  • List Exercise
  • Dictionary Exercise
  • Set Exercise
  • Tuple Exercise
  • Date and Time Exercise
  • OOP Exercise
  • Python JSON Exercise
  • Random Data Generation Exercise
  • NumPy Exercise
  • Pandas Exercise
  • Matplotlib Exercise
  • Python Database Exercise

All Python Topics

Python Basics Python Exercises Python Quizzes Python File Handling Python OOP Python Date and Time Python Random Python Regex Python Pandas Python Databases Python MySQL Python PostgreSQL Python SQLite Python JSON

About PYnative

PYnative.com is for Python lovers. Here, You can get Tutorials, Exercises, and Quizzes to practice and improve your Python skills.

Explore Python

  • Learn Python
  • Python Basics
  • Python Databases
  • Python Exercises
  • Python Quizzes
  • Online Python Code Editor
  • Python Tricks

Follow Us

To get New Python Tutorials, Exercises, and Quizzes

  • Twitter
  • Facebook
  • Sitemap

Legal Stuff

  • About Us
  • Contact Us

We use cookies to improve your experience. While using PYnative, you agree to have read and accepted our Terms Of Use, Cookie Policy, and Privacy Policy.

Copyright © 2018–2023 pynative.com