为什么str(random.choice())返回/string/

2024-05-12 23:43:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个函数,随机抛出石头、布或剪刀串。然而,当我调试时,我注意到变量是随机的。选项的格式如下:

Output of the random.choice

这意味着该条件从未满足。这是我函数的代码: 我知道这是不完整的

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

Tags: and函数returnwinplayerprintdetectionscissors
2条回答

您正在使用返回列表的random.choices

改用random.choice方法-它返回字符串

您调用了random.choices(使用s)而不是random.choice。它返回list个结果(奇怪的是,它不需要你说出你想要多少;它默认只做一个选择)。因此,enemy_pick始终是长度为1list,其str形式将永远不会等于任何字符串(它们不会用方括号括起来)。使用random.choice(不s)、不random.choices,它应该可以工作(您也可以删除str()包装;所有可用的选项都已经str

相关问题 更多 >