在函数外使用局部变量

2024-05-01 21:55:16 发布

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

我知道函数对代码很有用,因为代码会被多次使用,所以我尝试创建一个函数来节省自己的时间,使代码看起来更整洁。我的功能如下:

def drawCard():
    drawnCard = random.choice(cardDeck)
    adPos = cardDeck.index(drawnCard)
    drawnCardValue = cardValues[adPos]

但是,我不知道如何返回这些变量,因为它们是局部变量(?)。因此,我不能在函数外使用这些变量。我只是想知道是否有人能帮我编辑这个函数,让我在函数外使用drawnCard和drawnCardValue变量?你知道吗


Tags: 函数代码功能indexdef时间randomchoice
1条回答
网友
1楼 · 发布于 2024-05-01 21:55:16

Use ^{}

def drawCard():
    drawnCard = random.choice(cardDeck)
    adPos = cardDeck.index(drawnCard)
    drawnCardValue = cardValues[adPos]
    return drawnCard, drawnCardValue

drawnCard, drawnCardValue = drawnCard()

注意,您也可以这样写drawCard

def drawCard():
    adPos = random.randrange(len(cardDeck))
    drawnCard = cardDeck[adPos]
    drawnCardValue = cardValues[adPos]
    return drawnCard, drawnCardValue

但是,如果cardDeck包含重复项,则这两个函数的行为不同。cardDeck.index总是返回第一个索引,因此drawnCardValue总是对应于第一个重复项。它永远不会返回第二个值(理论上可能会有所不同)

如果您使用adPos = random.randrange(len(cardDeck)),那么cardValue中的每个项目都有相同的被选中的机会,假设len(cardValue) == len(cardDeck)。你知道吗

相关问题 更多 >