Random. Programs often need some source of random numbers. Think of generating a user name or ID—a random sequence can be helpful.
Random function. For Python developers there is a pseudo-random number generator. We call randint and random.choice. These are built-in, as Python is "batteries included."
With the random module (and randint) we easily generate random numbers. The randint() method receives 2 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.
import random
i = 0
while i < 10:
# Get random number in range 0 through 9.
n = random.randint(0, 9)
print(n)
i += 17
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.
Detail The random.choice method supports lists and tuples. As we see next, it also chooses a random character from a string.
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)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.
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)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.
Detail We call strip to remove trailing punctuation and spaces. Capitalize improves the phrase's appearance.
Note I encourage you to research Markov chains for better random text generation. This program is not good.
import random
# Create a list of words.
words = []
words.append("hello,")
words.append("cat,")
words.append("food")
words.append("buy")
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)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.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.