Python Random模块

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模块提供的处理整数、浮点数和其他序列(如列表、元组等)的各种方法。我们还看了种子如何影响伪随机数模式。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程