2014-03-03 21 views
-2
Traceback (most recent call last): 
    File "\\FS2StratfordAC\ALIANWAR$\My Documents\Computing\A453 Controlled Assessment\Python\Task 3\dice game task 3 v2.py", line 52, in <module> 
    print ("Your total is ", str_total) 
NameError: name 'str_total' is not defined* 

這是我的一半程序。我的遊戲有很多未定義變量的錯誤

if dice1 ==dice2: 
    print (p1 +(" your skill is " + p1skill)) 
    print (p1 +(" your skill is " + p1str)) 
    print (p2 +(" your skill is " + p2skill)) 
    print (p2 +(" your skill is " + p2str)) 
if dice1 > dice2: 
    str_total = (str_mod + p1str) 
    skill_total=(skill_mod + p1skill) 
    print (p1+ "Strength: " + str(str_val)) 
    print (p1+ "Skill: " + str(skill_val)) 
    print (p2+ "Strength: " + str(str_val)) 
    print (p2+ "Skill: " + str(skill_val)) 
if dice2 > dice1: 
    str_total = (str_mod+p2str) 
    skill_total=(skill_mod+p2skill) 
    str_total = (str_mod+p2skill) 
    str_total=(skill_mod + p1str) 
    skill_total = (skill_mod - p1skill) 

print ("Your total is ", str_total) 
print ("Your total is ", skill_total) 

還有其他的東西沒有定義,像14行和21行沒有定義。任何幫助,將不勝感激。感謝:D。

+1

我試圖重新構建您的代碼,同時格式正確發佈在這裏。你能否確認縮進仍然反映你的實際代碼? –

回答

2

如果dice1 == dice2爲真,那麼您從未設置過str_totalskill_total

dice2 > dice1是真實的,但是,你設置str_totalskill_total兩次