我不断收到此错误,
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
我不明白这里发生了什么,所有这些变量都是数字。
谢谢:)
答案 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。因此,它是一个元组。