random.cochoice()并没有选择所有的可能性Python中的



random.choice()无法正常工作。

我有以下函数,但调用时会发生以下情况:

def Randomswitch():
thechosenone = random.choice(range(0, 2))
if (thechosenone == 0):
return "WIN"
if (thechosenone == 1):
return "LOSE"
Randomswitch()

Randomswitch被调用时,它只在每次被调用时返回WIN

我想弄清楚这件事,真是伤透了脑筋。

有人能帮我吗?

看起来工作得很好,你只试过几次吗?让我们尝试10000次并计算发生次数:

import random
from collections import Counter
def Randomswitch():
thechosenone = random.choice(range(0, 2))
if (thechosenone == 0):
return "WIN"
if (thechosenone == 1):
return "LOSE"
Counter(Randomswitch() for i in range(10000))

输出:

Counter({'LOSE': 4980, 'WIN': 5020})

看起来相当不错;(

改进代码

也就是说,您的代码可以改进,为什么不直接将要从中选择的值传递给random.choice呢?

def Randomswitch():
return random.choice(['WIN', 'LOSE'])

试试这个:

import random
def Randomswitch():
range_list = [i for i in range(0, 2)]
thechosenone = random.choice(range_list)
if (thechosenone == 0):
return "WIN"
if (thechosenone == 1):
return "LOSE"

尝试使用random.randint(0,1)而不是random.choice(range(0,2))

最新更新