Python中的randint()方法

介绍

在本教程中,我们将专注于Python中的randint()方法。在我们之前的教程中,我们了解了在Python的随机数教程中,随机模块中定义的不同随机数生成方法。

所以,正如你已经知道的,我们首先需要在Python中导入random模块才能开始使用randint()方法。该模块本质上创建了伪随机性。

randint() 方法的语法

基本上,Python 中的 randint() 方法返回在两个较低和较高限制之间(包括两个限制)提供的两个参数之间的随机整数值。

值得注意的是,该方法只能生成整数类型的随机值。查看语法以进一步融入该方法。

#randint() Syntax
randint(lower limit , upper limit)

这里

  • lower limit is the starting point from and including which the random integer would be generated,
  • uppwer limit is the stopping point up to which the method would return the random integer.

以上示例返回一个整数N,满足 N≥beg 且 N≤end。

它的工作方式与randrange(beg,end)相同,因此是它的同义词。

randint()方法示例

让我们来看一下下面给出的代码,它展示了randint()方法的使用和工作原理。

import random
beg=10
end=100
random_integer = random.randint(beg, end)
print("The random integer is :", random_integer)

输出:将以下内容用中文表达,只需要一个选项:

Can you please help me with this task?

Randint Example

显然,我们可以看到randint()方法在1-100的限制范围内生成一个随机整数值。

这个值是随机的吗?当我们多次调用这个方法时会发生什么?它会返回相同的值吗?

多个randint()方法调用

下面的代码片段回答了以上提到的问题,并让我们清楚地了解了其含义。

import random
beg=10
end=100
for i in range(5):
    print(random.randint(beg, end))

输出:

Multiple Randint Output 1

对于上述代码,重复调用random.randint()方法会在10到100之间给出不同的随机整数。

因此,我们可以推断在我们的情况下,每次调用的值是随机的并且不重叠。此外,当调用次数很多且范围较小时,生成的随机值可能会发生碰撞或重叠。

正如前面所说的,我们必须确保上限和下限参数必须是整数类型。对于其他类型,我们会得到一个如下所示的值错误。

import random
beg=5.3
end=10.2
print(random.randint(beg, end))

输出结果:

Traceback (most recent call last):
  File "C:/Users/sneha/Desktop/test.py", line 4, in <module>
    print(random.randint(beg, end))
  File "C:\Users\sneha\AppData\Local\Programs\Python\Python37-32\lib\random.py", line 222, in randint
    return self.randrange(a, b+1)
  File "C:\Users\sneha\AppData\Local\Programs\Python\Python37-32\lib\random.py", line 186, in randrange
    raise ValueError("non-integer arg 1 for randrange()")
ValueError: non-integer arg 1 for randrange()

Process finished with exit code 1

结论

希望这篇关于Python中randint()方法的简短教程能够让你对它有更清晰的了解。欢迎通过留言提供反馈。

参考资料

  • https://docs.python.org/3/library/random.html
  • /community/tutorials/python-random-number
  • https://stackoverflow.com/questions/34865409/python-and-random-randint
发表回复 0

Your email address will not be published. Required fields are marked *