变量减法出错

时间:2018-08-08 21:30:38

标签: python

我不断收到此错误,

       line 37, in <module>
    ahealth = ahealth - attackdmg
TypeError: unsupported operand type(s) for -: 'int' and 'tuple'

这是这行代码。

if playerab == ('Attack'):
        attackdmg = randint(2,4)
        pcrit = randint(1,4)
        sleep(1)
        if  pcrit == randint(1,4):
            attackdmg = attackdmg * (2,5)
            print('CRIT!')
        print('You decide to attack the Orc.')
        sleep(1)
        ahealth = ahealth - attackdmg
        print('You hit the orc for', (attackdmg))
        sleep(1)
        print('The Orc has', (ahealth), ('health remaining.'))
        print
        orcturn = True
        playerturn = False

我不明白这里发生了什么,所有这些变量都是数字。

谢谢:)

3 个答案:

答案 0 :(得分:0)

问题出在行attackdmg = attackdmg * (2,5)上,您在其中将整数乘以元组(2,5)

我不知道您要在此处做什么,但是该行代码的工作方式如下:如果attackdmg = 1,您将得到(2,5),如果attackdmg = 2,您将得到{ {1}},依此类推。

由于您是python新手,因此解释元组是有用的。元组是不可变的列表类型。它可以包含一个或多个值。要从元组中获取项目,只需使用(2,5,2,5),其中“ tup”是元组,而“ index”是要返回的值的索引。

答案 1 :(得分:0)

if (Player.CrystalsHeld.Contains((Crystals) CrystalsHeldBox2.SelectedItem)) 行应该为attackdmg = attackdmg * (2,5)

答案 2 :(得分:0)

我只是在(2,5)之前错过了randint。因此,它是一个元组。