TheDeveloperBlog.com

Python Random Numbers Examples: random.choice

Random numbers. Programs often use random numbers. These numbers simulate chance. In quantum mechanics, physicists find true randomness.

But in Python, we settle for pseudo-random numbers. We use the random module (we import it for easy access). And we call randint and random.choice.

Import

With the random module, and randint, we easily generate random numbers. The randint() method receives two arguments. They are both inclusive (including the numbers).

Argument 1: The first argument to randint is the inclusive lower value of the range. Randint can return this value.

Argument 2: The second argument to randint is the inclusive upper value of the range. Randint can also return this value.

Based on:

Python 3

Python program that uses random, randint

import random

i = 0
while i < 10:
# Get random number in range 0 through 9.
n = random.randint(0, 9)
print(n)
i += 1

Output

7
0  (Min)
9  (Max)
3
4
6
5
4
4
8 Random.choice. In this Python example, we use random.choice() on a list and a tuple. When we execute this program, it gives a different result—unless the random choices are the same.

List, tuple: The random.choice method supports lists and tuples. As we see next, it also chooses a random character from a string.

ListTuple
Python program that uses random.choice

import random

# Use random.choice on a list.
arr = [1, 5, 9, 100]
n = random.choice(arr)

# Use random.choice on a tuple.
tup = (2, 4, 6)
y = random.choice(tup)

# Display.
print(n, y)

Output

100 4 Random lowercase letter. This program generates a random lowercase char. It only supports the chars A through Z, but it is easily modified.

Tip: To generate a random char from any set, you can just change the string literal in this program.

Tip 2: A list could also be used: we could add in a loop (or list comprehension) all the desired letters.

Python program that generates random lowercase letter

import random

# This string literal contains all lowercase ASCII letters.
values = "abcdefghijklmnopqrstuvwxyz"

for i in range(0, 10):
# random.choice returns a random character.
letter = random.choice(values)
print(letter)

Output

v
t
j
y
s
l
m
r
a
j Random phrases. Random.choice can be used to easily create random text or phrases. Here we populate a list with seven words and then add five random choices to a string.

Strip, capitalize: We call strip to remove trailing punctuation and spaces. Capitalize improves the phrase's appearance.

StripLower, Upper

Note: I encourage you to research Markov chains for better random text generation. This program is not good.

Markov processes can also be used to generate superficially real-looking text given a sample document.

Markov chain: Wikipedia
Python program that creates random phrases

import random

# Create a list of words.
words = []
words.append("hello,")
words.append("cat,")
words.append("food")
words.append("free")
words.append("click")
words.append("here")

# Create sentence of five words.
result = ""
for i in range(0, 5):
result += random.choice(words) + " "

# Fix trailing punctuation and capitalize.
result = result.strip(" ,")
result = result.capitalize()
result += "!"
print(result)

Output

Hello, here cat, buy free! The randint and random.choice methods are excellent choices for pseudo-random numbers. They are clear. They are easy to remember and need few comments.

One key thing to remember: the randint method receives two arguments that are inclusive. So the highest number is included. This differs from other languages like Java.