random.choice() 不选择所有可能性

random.choice() not selecting all possibilities

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

我有以下功能,但调用时发生以下情况:

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

Randomswitch()

Randomswitch 被调用时,它每次被调用时只 returns WIN

我在想办法解决这个问题。

有人能帮帮我吗?

看起来效果不错,你只试过几次吗?让我们尝试 10,000 次并计算出现次数:

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'])

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

试试这个:

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"