随机生成指定范围内的数 使用的是 Python random randrange() 函数

随机生成指定范围内的数 使用的是 Python random randrange() 函数

Python 的 random 模块允许生成随机数。生成的数是伪随机数序列,其基于所使用的函数。在 random 模块中有不同类型的函数用于生成随机数,例如 random.random()、random.randint()、random.choice()、random.randrange(start, stop, width) 等等。

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

random.randrange() 的语法

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

随机.randrange()函数返回给定范围内的随机整数,即start和stop。随机.randrandom()函数接受三个参数作为输入,即start、stop和width。在这三个参数中,两个参数start和width是可选的。

  • start参数是一个随机范围中的起始或下限整数。如果没有传入start参数,则它的默认值为0(零)。
  • stop参数是一个随机范围中的最后一个或上限整数。
  • width参数是随机序列中每个数字之间的范围。这个参数是可选的,如果没有传入width参数,则它的默认值为1(一)。

在生成随机整数时,随机.randrange(start, stop, width)函数不包括end参数。stop参数是排除在随机数之外的,不会生成一个随机数。

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

在应用程序中生成随机数始终很重要,并且在日常生活中有多种实时用途。例如,生成并发送一个随机数给客户作为一次性密码,用于进行安全交易。另一个生成随机数的示例是在玩鲁棒游戏时生成随机骰子数。

示例1:随机.randrange()生成给定范围内的随机整数数

让我们看一个示例,我们将在给定范围内生成一个随机整数。这个示例展示了随机.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)

输出:

随机生成指定范围内的数 使用的是 Python random randrange() 函数

示例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)

输出:

随机生成指定范围内的数 使用的是 Python random randrange() 函数

示例3:生成指定长度的随机整数

您还可以生成指定长度的随机整数。如果您想生成长度为3的随机数,请在randrange()函数的开始和停止参数中输入最小的3位数(100)和最小的4位数(1000),因为它会生成一个从100到999的3位数范围内的随机数,而4位数(1000)会被排除。

示例:使用random.randrange()生成一个3位数的随机数

import random
number1 = random.randrange(100, 1000)
print("First random number of length 3 is: ", number1)
number2 = random.randrange(100, 1000)
print("Second random number of length 3 is: ", number2)

输出:

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

示例4:生成一个随机负整数

让我们看一个示例,生成一个在-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

示例5:生成随机正数或负数

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

输出:

-5
0

请注意,传入random.randrange()函数的参数start和stop必须按照递增顺序排列,比如random.randrange(5, 10)或random.randrange(-20, -10)。start参数始终要小于stop参数;否则,该函数会生成一个错误信息,如”Traceback (most recent call last) and raise ValueError empty range for randrange()”。

例如:

请看以下示例,我们违反了规则,将start参数设为大于stop参数的值,导致random.randrange()函数生成一个错误消息:

import random
randomNumber = random.randrange(10,5)

输出:

随机生成指定范围内的数 使用的是 Python random randrange() 函数

Python的random模块还有一些其他用于随机生成数字的函数,包括:

  • choice()
  • randint()
  • sample()
  • sort()

random.choice()

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

ramdom.choice()的语法

random.choice(sequence)

或者

random.choices(sequence, k=l)

在这里,参数 sequence 可以是字符串、列表、元组和random.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() 函数接受两个参数 startstop ,其中 start 表示起始范围, stop 表示结束范围。在生成随机数时,两个参数(start, stop)都包含在内。

random.randint() 生成随机整数列表的示例:

这个示例将使用 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)从0到100的范围内生成10个是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的随机列表,并使用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]

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程