Python Random模块
Python Random模块是Python中的一个内置模块,用于生成随机整数。这些数字是随机发生的,不遵循任何规则或指令。因此,我们可以使用此模块生成随机数、显示列表或字符串的随机项等。
random()函数
random.random()函数给出一个从0.0到1.0范围的浮点数。此函数不需要任何参数。此方法返回在[0.0和1]之间的第二个随机浮点值。
代码
# Python program for generating random float number
import random
num=random.random()
print(num)
输出:
0.3232640977876686
randint() 函数
random.randint() 函数从给定的数字范围内生成一个随机整数。
代码
# Python program for generating a random integer
import random
num = random.randint(1, 500)
print( num )
输出:
215
randrange()函数
random.randrange()函数从指定的范围中随机选择一个项,该范围由起始、终止和步长参数定义。默认情况下,起始值设为0。类似地,默认步长为1。
代码
# To generate value between a specific range
import random
num = random.randrange(1, 10)
print( num )
num = random.randrange(1, 10, 2)
print( num )
输出:
4
9
choice() 函数
random.choice() 函数从非空系列中随机选择一个项目。在下面的程序中,我们已经定义了一个字符串、列表和集合。使用上述 choice() 方法,会选择一个随机元素。
代码
# To select a random element
import random
random_s = random.choice('Random Module') #a string
print( random_s )
random_l = random.choice([23, 54, 765, 23, 45, 45]) #a list
print( random_l )
random_s = random.choice((12, 64, 23, 54, 34)) #a set
print( random_s )
输出:
M
765
54
shuffle() 函数
random.shuffle() 函数将给定的列表随机地进行洗牌。
代码
# To shuffle elements in the list
list1 = [34, 23, 65, 86, 23, 43]
random.shuffle( list1 )
print( list1 )
random.shuffle( list1 )
print( list1 )
输出:
[23, 43, 86, 65, 34, 23]
[65, 23, 86, 23, 34, 43]
使用Random模块的剪刀石头布程序
代码
# import random module
import random
# Function to play game
def start_game():
# Print games rules and instructions
print(" This is Javatpoint's Rock-Paper-Scissors! ")
print(" Please Enter your choice: ")
print(" choice 1: Rock ")
print(" choice 2: Paper ")
print(" choice 3: Scissors ")
#To take the user input
choice_user = int(input(" Select any options from 1 - 3 : "))
# randint() Function which generates a random number by computer
choice_machine = random.randint(1, 3)
# display the machines choice
print(" Option choosed by Machine is: ", end = " ")
if choice_machine == 1:
print(" Rock ")
elif choice_machine == 2:
print("Paper")
else:
print("Scissors")
# To declare who the winner is
if choice_user == choice_machine:
print(" Wow It's a tie! ")
elif choice_user == 1 and choice_machine == 3:
print(" Congratulations!! You won! ")
elif choice_user == 2 and choice_machine == 1:
print(" Congratulations!! You won! ")
elif choice_user == 3 and choice_machine == 2:
print(" Congratulations!! You won! ")
else:
print(" Sorry! The Machine Won the Game? ")
# If user wants to play again
play_again = input(" Want to Play again? ( yes / no ) ").lower()
if play_again == " yes ":
start_game()
else:
print(" Thanks for playing Rock-Paper-Scissors! ")
# Begin the game
start_game()
输出:
This is Javatpoint's Rock-Paper-Scissors!
Please Enter your choice:
choice 1: Rock
choice 2: Paper
choice 3: Scissors
Select any options from 1 - 3 : 1
Option choosed by Machine is: Rock
Wow It's a tie!
Want to Play again? ( yes / no ) yes
This is Javatpoint's Rock-Paper-Scissors!
Please Enter your choice:
choice 1: Rock
choice 2: Paper
choice 3: Scissors
Select any options from 1 - 3 : 2
Option choosed by Machine is: Scissors
Congratulations!! You won!
Want to Play again? ( yes / no ) no
Thanks for playing Rock-Paper-Scissors!
随机模块的各种功能
以下是random模块中可用的函数列表。
功能 | 描述 |
---|---|
seed(a=None, version=2) | 此函数创建一个新的随机数。 |
getstate() | 此方法提供一个反映生成器当前状态的对象。提供参数给setstate()以恢复状态。 |
setstate(state) | 提供状态对象将函数的状态重置为调用getstate()时的状态。 |
getrandbits(k) | 此函数提供一个具有k个随机位的Python整数。这对于像randrange()这样可以处理任意巨大范围的随机数生成算法非常重要。 |
randrange(start, stop[, step]) | 从范围内产生一个随机整数。 |
randint(a, b) | 在a和b之间随机提供一个整数(包括两者)。如果a > b,则抛出ValueError。 |
choice(seq) | 随机生成一个非空序列项。 |
shuffle(seq) | 更改顺序。 |
sample(population, k) | 从群体序列中显示一个k大小的唯一输入列表。 |
random() | 此函数创建一个新的随机数。 |
uniform(a, b) | 此方法提供一个反映生成器当前状态的对象。提供参数给setstate()以恢复状态。 |
triangular(low, high, mode) | 提供状态对象将函数的状态重置为调用getstate()时的状态。 |
guass(mu, sigma) | 带有均值和标准差,随机生成一个浮点数。 |
betavariate(alpha, beta) | 使用alpha和beta,在0和1之间随机生成一个浮点数。- Beta分布 | expovariate(lambda) | 使用lambda参数生成浮点数。-指数分布 | normalvariate(mu, sigma) | 使用均值和标准差生成一个随机浮点数。-正态分布 | gamavariate(alpha, beta) | 使用alpha和beta,生成一个随机浮点数。-伽马分布 |
结论
总之,我们学习了Python的random模块提供的处理整数、浮点数和其他序列(如列表、元组等)的各种方法。我们还看了种子如何影响伪随机数模式。