2013-09-23 51 views
1

我有一個GUI和一個運行Rock Paper Scissors的記分板的程序,但每次程序運行時,Wins,Draws和Loses計數都設置爲零。有什麼辦法可以阻止計數被重置並不斷添加到?每當我運行一個程序時更改一個變量 - Python

在代碼的開始:

x = int(0) 
    user = 0 

    score = str(x) 
    draws = str(x) 
    loses = str(x) 

,但我不想每次程序運行

+2

序列化是一個選項,請參閱'pickle'模塊,例如[here](http://docs.python.org/2/library/pickle.html#example) – 2013-09-23 17:53:41

+0

如果您想跨多次運行保存變量該程序需要在程序結束時將值寫入文件,並在開始時再次讀入。 – BrenBarn

+0

每次想要再玩一次時,請勿重新啓動程序。讓代碼循環運行一輪。 –

回答

0

時間他們將是零,因爲它是被宣佈爲0的變量設置爲0,所以如果你不失去保存到一個文件,然後啓動加載。

例子:

def save(): 
    f = open('lastgame','w') 
    f.write(str(score)+','+str(draws)+','+str(loses)) 
    f.close() 

def load(): 
    f = open('lastgame','r') 
    score,draws,loses = f.read().split(',') 
    f.close() 
    return score,draws,loses 

您還可以使用sys.argv所以你輸入他們在命令行。

import sys 
score = sys.argv[1] 
draws = sys.argv[2] 
loses = sys.argv[3] 

然後使用python file.py 6 10 5會讓你開始得分= 6的運行環境,吸引= 10,失去= 5。但是,如果你不調用這些參數,你會得到一個IndexError。

+0

使用sys.argv,我如何將它實現到代碼中,因爲它始終提供:Traceback(最近調用最後一個): 文件「C:\ Users \ ---- \ ----- \ CODE \ Rock Paper Scissors GUI.py「,第22行,在 score = sys.argv [1] IndexError:列表索引超出範圍 –

相關問題