【问题标题】:(Closed) Global variables are not picked up in a different function in python(已关闭)在 python 的不同函数中未拾取全局变量
【发布时间】:2023-04-10 09:44:01
【问题描述】:

我正在尝试制作一个可以掷 2 个骰子并有一些其他要求的代码。我已将一个变量声明为全局变量,但它仍然给我一个错误

我也尝试将变量作为条件放在 draw() 函数中,但这仍然行不通

class DiceGame():    
  def game():
    global p1total
    global p1total
    p1total = 0
    p2total = 0
    i=1
    for i in range(1,5):
        dice1 = random.randint(1,6)
        dice2 = random.randint(1,6)
        dice3 = random.randint(1,6)
        dice4 = random.randint(1,6)
        dice5 = random.randint(1,6)
        dice6 = random.randint(1,6)

        if (dice1+dice2)%2 == 0:
            if p1total >= 10:
                p1total -+10
            else:
                p1total = 0
        else:
            p1total += 5
        if dice1==dice2:
            p1total += dice1+dice2+dice3

        if (dice4+dice5)%2 == 0:
            if p2total >= 10:
                p2total -+10
            else:
                p2total = 0
        else:
            p2total += 5
        if dice4==dice5:
            p2total += dice4+dice5+dice6
        i+=1
    DiceGame.draw(p1total, p2total)
  def draw(p1total, p2total):
    print("Player 1 has:",p1total)
    print("Player 2 has:",p2total)
    if p1total==p2total:
        p1dice = random.randint(1,6)
        p1total+=p1dice
        p2dice = random.randint(1,6)
        p2total+=p2dice
        DiceGame.draw()
    elif p1total > p2total:
        print("Player 1 wins with",p1total)
        print("Player 2 lost with",p2total)
        DiceGame.scores()
    elif p1total < p2total:
        print("Player 2 wins with",p2total)
        print("Player 1 lost with",p1total)

错误: 回溯(最近一次通话最后): 文件“”,第 1 行,在 骰子游戏.game() 文件“C:/Users/fredd/Desktop/dan/Dice 游戏控制评估分钟 lines.py",第 61 行,在游戏中 骰子游戏.draw() 文件“C:/Users/fredd/Desktop/dan/Dice 游戏控制评估分钟 lines.py",第 63 行,绘制中 print("玩家 1 有:",p1total) UnboundLocalError:赋值前引用了局部变量“p1total”

我只需要变量可用于 draw() 函数并输出获胜者

【问题讨论】:

  • 第一,你有两次global p1total,你从来没有声明global p2total。其次,您需要将错误粘贴到您的问题中,以便我们帮助您调试问题。
  • 我已经将一个变量声明为全局变量,但它仍然给我一个错误你让我们猜测错误是什么。向我们展示错误。
  • @RandomDavis 谢谢我一定错过了。它现在正在工作。
  • 为什么它们是全局变量,而不是实例属性?
  • @chepner 因为当时我不知道有一个函数 init 可以做到这一点。现在我这样做了,它让它变得容易多了

标签: python global-variables


【解决方案1】:

这是我的一个错误,我没有在全局语句中正确定义变量!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    相关资源
    最近更新 更多