Python random.randint()

Python random.randint()

randint()是Python3中随机模块的一个内置函数。随机模块提供了对各种有用函数的访问,其中一个可以生成随机数,这就是randint()。语法:

randint(start, end)

参数:

  • (start, end) : 它们都必须是整数类型的值s.

返回:
– 一个范围为[start, end]的随机整数,包括端点

错误和异常 :

  • ValueError : 当浮点值被作为参数传递时,返回ValueError。
  • TypeError : 当数值以外的东西作为参数被传递时,返回一个TypeError。

代码 #1 :

# Python3 program explaining work
# of randint() function
 
# imports random module
import random
 
# Generates a random number between
# a given positive range
r1 = random.randint(0, 10)
print("Random number between 0 and 10 is % s" % (r1))
 
# Generates a random number between
# two given negative range
r2 = random.randint(-10, -1)
print("Random number between -10 and -1 is % d" % (r2))
 
# Generates a random number between
# a positive and a negative range
r3 = random.randint(-5, 5)
print("Random number between -5 and 5 is % d" % (r3))

输出:

Random number between 0 and 10 is 5
Random number between -10 and -1 is -7
Random number between -5 and 5 is 2

代码#2:演示ValueError的程序。

# imports random module
import random
 
'''If we pass floating point values as
parameters in the randint() function'''
 
r1 = random.randint(1.23, 9.34)
print(r1)

输出:

Traceback (most recent call last):
  File "/home/f813370b9ea61dd5d55d7dadc8ed5171.py", line 6, in 
    r1=random.randint(1.23, 9.34)
  File "/usr/lib/python3.5/random.py", line 218, in randint
    return self.randrange(a, b+1)
  File "/usr/lib/python3.5/random.py", line 182, in randrange
    raise ValueError("non-integer arg 1 for randrange()")
ValueError: non-integer arg 1 for randrange()

代码#3:演示TypeError的程序。

# imports random
import random
 
'''If we pass string or character literals as
parameters in the randint() function'''
 
r2 = random.randint('a', 'z')
print(r2)

输出:

Traceback (most recent call last):
  File "/home/fb805b21fea0e29c6a65f62b99998953.py", line 5, in 
    r2=random.randint('a', 'z')
  File "/usr/lib/python3.5/random.py", line 218, in randint
    return self.randrange(a, b+1)
TypeError: Can't convert 'int' object to str implicitly

应用:randint()函数可以用来模拟抽奖情况。比方说,用户参加了一个幸运抽奖活动。用户有三次机会来猜测1到10之间的数字。如果猜对了,用户就获胜,否则就输掉比赛。

# importing randint function
# from random module
from random import randint
 
# Function which generates a new
# random number everytime it executes
def generator():
    return randint(1, 10)
     
# Function takes user input and returns
# true or false depending whether the
# user wins the lucky draw!
def rand_guess():
 
    # calls generator() which returns a
    # random integer between 1 and 10
    random_number = generator()
     
    # defining the number of
    # guesses the user gets
    guess_left = 3
 
    # Setting a flag variable to check
    # the win-condition for user
    flag = 0
 
    # looping the number of times
    # the user gets chances
    while guess_left > 0:
 
        # Taking a input from the user
        guess = int(input("Pick your number to "
                      "enter the lucky draw\n"))
 
        # checking whether user's guess
        # matches the generated win-condition
        if guess == random_number:
 
            # setting flag as 1 if user guesses
            # correctly and then loop is broken
            flag = 1
            break
         
        else:
             
            # If user's choice doesn't match
            # win-condition then it is printed
            print("Wrong Guess!!")
 
        # Decrementing number of
        # guesses left by 1
        guess_left -= 1
 
    # If win-condition is satisfied then,
    # the function rand_guess returns True
    if flag is 1:
        return True
 
    # Else the function returns False
    else:
        return False
 
# Driver code
if __name__ == '__main__':
    if rand_guess() is True:
        print("Congrats!! You Win.")
    else :
        print("Sorry, You Lost!")

输出:

Pick your number to enter the lucky draw
8
Wrong Guess!!
Pick your number to enter the lucky draw
9
Wrong Guess!!
Pick your number to enter the lucky draw
0
Congrats!! You Win.

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程