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

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

random.randrange()的语法

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

random.randrange()函数返回给定范围内的随机整数。random.randrange()函数接受三个参数作为输入:start,stopwidth。在这三个参数中,两个参数startwidth是可选的。

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

randrange(start, stop, width)函数在生成随机整数时不包括结束参数。stop参数是排除的,它不会在随机数中生成。

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

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

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

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

输出:

150-1.png

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

输出:

150-2.png

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

您还可以生成特定长度的随机整数。如果要生成3位数的随机数,可以将randrange()函数的*startstop*参数输入为最小的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()函数的startstop参数必须按升序排列,例如random.randrange(5, 10)random.randrange(-20, -10)start参数必须始终小于stop参数;否则,该函数会生成一个错误,如"Traceback (most recent call last) and raise ValueError empty range for randrange()"

例如:

看看这个示例,我们违反了规则,通过在random.randrange()函数中传递start参数大于stop参数,这将生成一个错误消息:

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

输出:

Python random randrange()

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

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

random.choice()

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

random.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()函数接受两个参数start,它是起始范围,以及stop,它是结束范围。在生成随机数时,这两个参数(start, stop)都包括在内。

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

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

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()函数的步骤参数。

例如,使用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]

列表排序

Python的sort()函数用于按升序(默认情况下)对列表中的随机整数进行排序。我们还可以通过指定其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]

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程