gpt4 book ai didi

python - 试图理解 python,为什么这个函数不起作用? [添加公式]

转载 作者:行者123 更新时间:2023-12-02 16:08:08 25 4
gpt4 key购买 nike

(我在底部添加了有问题的功能)

正在开发我的第一个 Python 应用。

我正在制作一个简单的剪刀石头布游戏。

我有一个接受两个参数的函数:

  1. 用户输入
  2. 电脑输入

函数如下所示:

seeIfUserWon(userInput, selectRandomOption()) 其中 selectRandomOption() 只是选择一个随机枚举(ROCK, PAPER, SCISSORS)

如果我将 selectRandomOption 替换为硬编码输入,代码就可以工作。


目前该代码给我错误:

ValueError: 'Paper' is not a valid RPS 其中 RPS 是具有 3 种情况的枚举类:ROCK、PAPER、SCISSORS

但是就像我说的,如果我只是将 RPS.ROCK 作为第二个参数,那么它就可以工作...

我对 python 有什么不了解的地方。也许我需要在这里使用 lambda,但我不确定?任何引用也将不胜感激!


我使用的函数:

def selectRandomOption() -> RPS:
pick = options[random.randint(0,2)]
return RPS(pick)

选项:

options = ["Rock", "Paper", "Scissors"]

然后我用它来验证:

def validateUserInput(input):
if "rock" in input.lower():
return RPS.ROCK
elif "paper" in input.lower():
return RPS.PAPER
elif "scissors" in input.lower():
return RPS.SCISSORS
else:
raise Exception

枚举:

class RPS(Enum):
ROCK = auto()
PAPER = auto()
SCISSORS = auto()

最佳答案

与其随机选择一个整数,然后查找一个字符串,然后获取一个枚举值,不如考虑直接选择枚举值。例如:

import random

class RPS(Enum):
ROCK = auto()
PAPER = auto()
SCISSORS = auto()

random.choice(list(RPS))
# <RPS.SCISSORS: 3>

关于python - 试图理解 python,为什么这个函数不起作用? [添加公式],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68788018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com