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