Python random randrange() 实例讲解 random.random、random.randint、random.choice、random.randrange

Python random 模块允许生成随机数。生成的数字是一系列伪随机数,它们基于所使用的函数。 random 模块中使用了不同类型的函数来生成随机数,例如 random.random()、random.randint()、random.choice()、random.randrange(start, stop, width) 等等。

在这里,我们将讨论随机模块的 randrange() 函数。 randrange() 函数用于在其参数中的指定范围之间生成一个随机数。它接受三个参数:起始编号、停止编号和宽度,用于跳过范围内的数字。

random.randrange()

random.randrange() 的语法 

random.randrange(start, stop[, width])

random.randrange() 函数返回给定范围内的随机整数,即开始和停止。 random.randrange() 函数采用三个参数作为输入开始、停止和宽度。在这三个参数中,两个参数 start 和 width 是可选的。

  • start 参数是一个随机范围内的起始或下限整数。如果 start 参数未传入参数,则采用默认值 0(零)。
  • 停止参数是随机范围内的最后一个数字或上限整数。
  • width 参数是随机序列中每个数字之间的范围。该参数是可选的,如果参数中没有传入宽度参数,则取默认值1(一)。

randrange(start, stop, width) 函数在生成随机整数时不包括结束参数。 stop 参数是独占的,它不是以随机数生成的。

看看这个 random.randrange(3, 30, 3) 函数,它将生成 3 到 30 之间的任何随机整数值,如 3, 6, 9, 12......27。但是这个函数在生成随机数时从不包含 30。

random.randrange()样例

例1:让我们看一个例子,我们在给定范围内生成一个随机整数。此示例显示了 random.randrange() 函数的所有不同形式。

import random
print("Generating random number within a given range ")
# Random number between 0 and 29
number1 = random.randrange(30)
print("Random integer:", number1)
# Random number between 10 and 29
number2 = random.randrange(10, 30)
print("Random integer:", number2)
# Random number between 25 and 200 divisible by 5
number3 = random.randrange(25, 201, 5)
print("Random integer:", number3)

例2:生成n的随机整数范围(倍数)

让我们生成 5 到 100 之间的随机整数,即 5 的范围,例如 5, 10, 25......90, 95。

import random
#print "Random number range (multiple) of 5"
number = random.randrange(5, 100, 5)
print("Random number range (multiple) of 5 is ", number)

 输出 :

First random number of length 3 is:813
Second random number of length 3 is:770

例3:生成随机负整数:

让我们看一个生成 -50 到 -10 之间的随机负整数的示例。

import random
randomNagativeInteger = random.randrange(-50, -10)
print("Random negative integer number between -50 to -10")
print("Random negative integer number between -50 to -10 is:",randomNagativeInteger)

输出 : 

Random negative integer number between -50 to -10
Random negative integer number between -50 to -10 is: -43

例 4:生成随机正整数或负整数

import random
number1 = random.randrange(-5, 5)
print(number1)
number2 = random.randrange(-5, 5)
print(number2)

 输出 :

-5
0
注意参数开始停止, 传入random.randrange()函数必须按递增顺序排列,例如random.randrange(5, 10)或者random.randrange(-20, -10)。这开始参数总是小于停止参数;否则,这个函数会产生一个错误“回溯(最近一次调用最后一次)并提高 randrange() 的 ValueError 空范围”


Python 的 random 模块的其他一些用于随机生成数字的函数是:

  • choice()

  • randint()

  • sample()

  • sort()

Python random 模块有一个 choice() 函数,用于从列表或其他序列中选择随机元素。 random.choice() 函数用于从值列表中返回随机元素。

random.choice()

random.choice(sequence)

或者

random.choices(sequence, k=l)

这里的参数序列可以是字符串、列表、元组和随机。choice() 只是单个随机元素。

在 random.choices() 函数中,k 是要返回的元素数。假设我们没有提到 k 参数的值 random.choices() 从序列或列表中返回单个项目。

范例1:

在这个例子中,我们将序列(列表)作为参数提供并返回单个随机元素。

import random
listValue = [5,10,15,20,25,30]
item = random.choice(listValue)
print("random item from list is:", item)

 输出 :

random item from list is: 10 

范例2:

random.choices() 函数主要用于返回具有各种可能性的随机元素。该函数还对随机选择的数量进行加权(k)。例如,我们想从 5 个电影的列表中打印 3 个随机电影名称。

import random
movieList = ['Matrix', 'Terminator', 'Black Panther', 'Avengers', 'Titanic']
randomMovies = random.choices(movieList, k=3)
print("random movies from list are:", randomMovies)

输出 : 

random movies from list are: ['Avengers', 'Black Panther', 'Titanic']

random.randint()

Python random.randint() 函数用于生成指定范围内的随机整数。

用法:

random.randint(start, stop)

random.randint() 函数有两个参数 start,这是一个开始范围,和 stop,这是一个结束范围。生成随机数时包括两个参数(开始、停止)。

此示例将使用 randint() 函数创建多个随机整数的列表。生成 1 到 100 之间的 5 个随机整数的列表,两个值都包含在内。

import random
randomListValue = []
# specifing length of list equal to 5
for i in range(0, 5):
    # generates random numbers from 1 to 100
    randomListValue.append(random.randint(1, 100))
print("Printing list of 5 generated random numbers")
print(randomListValue)

 输出 :

Printing list of 5 generated random numbers
[65, 82, 3, 39, 40]

 

但是,random.randint() 函数可能会在输出结果中返回重复的数字。为了避免结果中出现重复的随机整数,请使用 random.sample() 函数。

random.sample()

在上面的例子中,可能存在 random.randint() 从列表中生成重复随机数的可能性。如果要从列表中生成唯一的随机数,请使用 random.sample() 函数。

random.sample() 函数从集合、列表和其他序列中生成唯一元素。 Python 的 random.sample() 函数允许从列表中随机抽取一个范围内的多个元素而不会重复。

random.sample() 从列表中生成随机元素的示例,没有重复项:

在本例中,我们将生成 0 到 100 范围内的 10 个随机整数。

import random
# Generate 10 unique random numbers within a range
randomList = random.sample(range(0, 100), 10)
print(randomList)

 输出 :

[15, 17, 16, 66, 34, 85, 71, 82, 97, 48]

如果你想生成一个随机数列表,并且每个随机数都必须是'n'的倍数,那么使用range()函数的step参数。

例如,使用 random.sample(range(0, 100, 5), 10) 生成 10 个随机整数,它们是 0 到 100 范围内 5 的倍数。

import random
# Generate 10 unique random numbers within a range
randomList = random.sample(range(0, 100, 5), 10)
print(randomList)

 输出 :

[75, 40, 20, 55, 15, 10, 5, 90, 95, 70]

列表 sort()

Python sort() 函数用于按升序对列表的随机整数进行排序(默认情况下)。我们还可以通过指定 order reverse = True 来按降序对列表值进行排序。 reverse 的默认值为 False。

示例 1:sort() 按升序排列列表元素

在这个例子中,我们将生成一个随机列表,其中包含 50 到 100 范围内的 5 个数字,宽度为 5,并使用 sort() 函数对它们进行排序。

import random
randomList = random.sample(range(50, 100, 5), 5)
print("Before sorting random integers list")
print(randomList)
# sort the list ascending order by default
randomList.sort()
print("After sorting random integers list")
print(randomList)

输出 : 

Before sorting random integers list
[90, 80, 60, 55, 85]
After sorting random integers list
[55, 60, 80, 85, 90]

示例 2:sort() 按降序排列列表元素

在这个例子中,我们将使用 randomList.sort(reverse=True) 按降序对列表元素进行排序。

import random
randomList = random.sample(range(50, 100, 5), 5)
print("Before sorting random integers list")
print(randomList)
# sort the list descending order
randomList.sort(reverse=True)
print("After sorting random integers list")
print(randomList)
输出 :
Before sorting random integers list
[70, 50, 80, 90, 85]
After sorting random integers list
[90, 85, 80, 70, 50]

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值