2013-10-18 87 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

好的......我只是認爲在整個腳本中只有一個函數,對不起。 –