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