📜  Python中的randrange()

📅  最后修改于: 2022-05-13 01:54:39.124000             🧑  作者: Mango

Python中的randrange()

生成随机数一直是一个重要的应用,在日常生活中有很多用途。 Python提供了一个函数,可以从指定范围生成随机数,还允许包含步骤的空间,在random模块中称为randrange() 。本文将讨论更多关于此函数的内容。

Syntax : 
random.randrange(start(opt),stop,step(opt))
Parameters :
start(opt) :  Number consideration for generation starts from this,
default value is 0. This parameter is optional.
stop : Numbers less than this are generated. This parameter is mandatory.
step(opt) : Step point of range, this won't be included. This is optional.
Default value is 1.
Return Value : 
This function generated the numbers in the sequence start-stop skipping step.
Exceptions :
Raises ValueError if stop <= start and number is non- integral.


Python3
# Python code to demonstrate the working of
# randrange()
 
import random
 
# Using randrange() to generate numbers from 0-100
print ("Random number from 0-100 is : ",end="")
print (random.randrange(100))
 
# Using randrange() to generate numbers from 50-100
print ("Random number from 50-100 is : ",end="")
print (random.randrange(50,100))
 
# Using randrange() to generate numbers from 50-100
# skipping 5
print ("Random number from 50-100 skip 5 is : ",end="")
print (random.randrange(50,100,5))


Python3
# Python code to demonstrate the Exception of
# randrange(), ValueError, Float value
 
import random
 
# Using randrange() to generate numbers from 14.5-100
# Raises Exception
print ("Random number from 14.5-100 is : ",end="")
print (random.randrange(14.5,100))


Python3
# Python code to demonstrate the Exception of
# randrange(), ValueError, start >= start
 
import random
 
# Using randrange() to generate numbers from 500-100
# Raises Exception
print ("Random number from 500-100 is : ",end="")
print (random.randrange(500,100))


Python3
# Python code to demonstrate the Application of
# randrange()
 
import random
 
sum = 0
sum1 = 0
count = 0
flag = 0
 
while(1):
     
    # generate random number at each turn 1-10
    r1 = random.randrange(1,10)
    r2 = random.randrange(1,10)
     
    # adding to account of players
    sum = sum + r1
    sum1 = sum1 + r2
    count = count+1
     
    print ("Total score of Player 1 after turn %d is :  %d " % (count,sum))
     
    # break when player 1 reaches 100
    if(sum>=100):
      flag=1
      break
    print ("Total score of Player 2 after turn %d is :  %d" % (count,sum1))
     
    # break when player 2 reaches 100
    if(sum1>=100):
      flag=2
      break
 
if(flag==1):
   print("\nPlayer 1 wins the game")
else :
   print("\nPlayer 2 wins the game")


输出:

Random number from 0-100 is : 26
Random number from 50-100 is : 58
Random number from 50-100 skip 5 is : 90


例外

1. 值错误——浮点值

Python3

# Python code to demonstrate the Exception of
# randrange(), ValueError, Float value
 
import random
 
# Using randrange() to generate numbers from 14.5-100
# Raises Exception
print ("Random number from 14.5-100 is : ",end="")
print (random.randrange(14.5,100))

输出 :

Random number from 14.5-100 is : 


运行时错误:

Traceback (most recent call last):
  File "/home/5e40f42505a6926d0c75a09bec1279d9.py", line 9, in 
    print (random.randrange(14.5,100))
  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()


2.值错误 – 开始 >= 停止

Python3

# Python code to demonstrate the Exception of
# randrange(), ValueError, start >= start
 
import random
 
# Using randrange() to generate numbers from 500-100
# Raises Exception
print ("Random number from 500-100 is : ",end="")
print (random.randrange(500,100))

输出 :

Random number from 500-100 is : 


运行时错误:

Traceback (most recent call last):
  File "/home/ea327cf3f1dd801a66a185d101c5cb13.py", line 9, in 
    print (random.randrange(500,100))
  File "/usr/lib/python3.5/random.py", line 196, in randrange
    raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (500,100, -400)


实际应用

生成随机数一直是一个重要的应用,并已在许多赌场游戏中使用,用于许多使用 Dice 概念的儿童游戏,如 Ludo 等。下面的代码描述了一场简短的比赛,谁先赢了 100 场。每个玩家都可以掷出 1-10 个数字的骰子,即每轮可以得到 1-10 个数字。 .

Python3

# Python code to demonstrate the Application of
# randrange()
 
import random
 
sum = 0
sum1 = 0
count = 0
flag = 0
 
while(1):
     
    # generate random number at each turn 1-10
    r1 = random.randrange(1,10)
    r2 = random.randrange(1,10)
     
    # adding to account of players
    sum = sum + r1
    sum1 = sum1 + r2
    count = count+1
     
    print ("Total score of Player 1 after turn %d is :  %d " % (count,sum))
     
    # break when player 1 reaches 100
    if(sum>=100):
      flag=1
      break
    print ("Total score of Player 2 after turn %d is :  %d" % (count,sum1))
     
    # break when player 2 reaches 100
    if(sum1>=100):
      flag=2
      break
 
if(flag==1):
   print("\nPlayer 1 wins the game")
else :
   print("\nPlayer 2 wins the game")  
输出
Total score of Player 1 after turn 1 is :  8 
Total score of Player 2 after turn 1 is :  4
Total score of Player 1 after turn 2 is :  13 
Total score of Player 2 after turn 2 is :  8
Total score of Player 1 after turn 3 is :  22 
Total score of Player 2 after turn 3 is :  16
Total score of Player 1 after turn 4 is :  28 
Total score of Player 2 after turn 4 is :  22
Total score of Player 1 after turn 5 is :  33 
Total score of Player 2 after turn 5 is :  27
Total score of Player 1 after turn 6 is :  35 
Total score of Player 2 after turn 6 is :  33
Total score of Player 1 after turn 7 is :  36 
Total score of Player 2 after turn 7 is :  42
Total score of Player 1 after turn 8 is :  38 
Total score of Player 2 after turn 8 is :  50
Total score of Player 1 after turn 9 is :  45 
Total score of Player 2 after turn 9 is :  55
Total score of Player 1 after turn 10 is :  48 
Total score of Player 2 after turn 10 is :  61
Total score of Player 1 after turn 11 is :  54 
Total score of Player 2 after turn 11 is :  64
Total score of Player 1 after turn 12 is :  57 
Total score of Player 2 after turn 12 is :  70
Total score of Player 1 after turn 13 is :  66 
Total score of Player 2 after turn 13 is :  73
Total score of Player 1 after turn 14 is :  72 
Total score of Player 2 after turn 14 is :  75
Total score of Player 1 after turn 15 is :  79 
Total score of Player 2 after turn 15 is :  76
Total score of Player 1 after turn 16 is :  81 
Total score of Player 2 after turn 16 is :  77
Total score of Player 1 after turn 17 is :  89 
Total score of Player 2 after turn 17 is :  81
Total score of Player 1 after turn 18 is :  95 
Total score of Player 2 after turn 18 is :  90
Total score of Player 1 after turn 19 is :  97 
Total score of Player 2 after turn 19 is :  99
Total score of Player 1 after turn 20 is :  102 

Player 1 wins the game