Python教程-Python随机模块
Python的随机模块是一个内置模块,用于在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]
使用随机模块进行Rock-Paper-Scissor游戏
代码
# 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) | 此函数提供一个Python整数,具有k个随机位。这对于可以管理任意巨大范围的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) | 在0和1之间随机生成一个浮点数,使用alpha和beta。- Beta分布 |
expovariate(lambda) | 使用参数lambda生成浮点数。- 指数分布 |
normalvariate(mu, sigma) | 使用均值和标准偏差随机生成浮点数。- 正态分布 |
gamavariate(alpha, beta) | 在0和1之间随机生成一个浮点数,使用alpha和beta。- 伽玛分布 |
结论
总之,我们学习了Python的随机模块为我们提供了处理整数、浮点数和其他序列(如列表、元组等)的各种方法。我们还看到了种子如何影响伪随机数的模式。