2013-10-18 83 views
0

我一直在研究一个小小的模拟程序,其中包括损坏和健康以及防御和东西(只是为了好玩),但是我遇到了这个'语法错误'。语法错误是由enemystr = str(enemydamage)造成的。我试图删除它,但它只是表示下面的打印语句是一个语法错误。Python:变量名是'语法错误'

def enemyattack(): 
    enemyrandompick = random.randint(1, 4) 
    if enemyrandompick == 1: 
     enemydamage = (random.randint(1, 3) * (enemyattack - (defense * 1.25)) 
     enemystr = str(enemydamage) 
     print "The enemy's attack hits you and takes away " + enemystr , "health, leaving you with" + str(int(health)) 
+1

您忘记了上一行的左括号。 (当你得到一个神秘的语法错误时,总是检查上一行,特别是如果删除该行没有帮助!) –

+0

谢谢,解决了这个问题。 – Pamplemousse

+1

您可以切换到突出显示类似错误的编辑器。在这么琐碎的错误上浪费SO是没有任何借口的。 – Barmar

回答

2

有这条线不匹配paranthesis:

enemydamage = (random.randint(1, 3) * (enemyattack - (defense * 1.25))) 
#                 ^Missing closing paranthesis 
+0

它可以说是更Pythonic指出有一个不必要的领先'(''在线:) –

-1

而且我觉得你没有声明的变量,“健康”无论是。

`print "The enemy's attack hits you and takes away " + enemystr , "health, leaving you with" + str(int(health)) 
                             ^
`
+0

OP没有明显显示整个代码,变量'健康必须'已被定义在其他地方加上它会引发'NameError '而不是'SyntaxError'如果没有定义健康状态 –

+0

好的......我只是认为在整个脚本中只有一个函数,对不起。 –