我正在尝试创建一个函数,随机抛出石头、布或剪刀串。然而,当我调试时,我注意到变量是随机的。选项的格式如下:
这意味着该条件从未满足。这是我函数的代码: 我知道这是不完整的
def detect(player_pick):
enemy_pick = str(random.choices(['rock', 'paper', 'scissors']))
# Rock detection
if enemy_pick == 'rock' and player_pick == 'scissors':
print("you lose")
return "rock_win_enemy"
elif enemy_pick == 'scissors' and player_pick == 'rock':
print("Enemy lose")
return "rock_win_player"
elif enemy_pick == 'rock' and player_pick == 'rock':
print("tie")
return "tie"
# Paper detection
# Scissors detection
您正在使用返回列表的
random.choices
改用
random.choice
方法-它返回字符串您调用了
random.choices
(使用s
)而不是random.choice
。它返回list
个结果(奇怪的是,它不需要你说出你想要多少;它默认只做一个选择)。因此,enemy_pick
始终是长度为1list
,其str
形式将永远不会等于任何字符串(它们不会用方括号括起来)。使用random.choice
(不s
)、不random.choices
,它应该可以工作(您也可以删除str()
包装;所有可用的选项都已经str
)相关问题 更多 >
编程相关推荐