2017-10-18 163 views
1

你好,我做的這些指示將遊戲名稱添加到文件?

學校裏的功課寫了一個循環,提示用戶輸入自己喜歡的遊戲。 當他們輸入遊戲名稱時,在屏幕上打印一條消息,並在一個名爲games.txt的文件中添加一行記錄其日誌的行。確保每個 條目都出現在文件的新行中。

我很難讓循環問多次,而不是一遍又一遍地添加遊戲。另外,我不希望games.txt文件丟失之前添加的遊戲。


這是我當前的代碼:

filename = 'games.txt' 
print("When you want to finish adding games just type 'done'") 
game = input('Whats your favorite game? ') 

with open(filename, 'w') as file_object: 
    while game != 'done': 
     print(game) 
     file_object.write(game + str("\n) 

正如你可以看到,如果我運行它,我把「命運2」的遊戲將不斷增加命運2名爲games.txt文件直到我停止該計劃。

回答

1

您目前有一個無限循環,無限期地寫入文件中輸入的最後一個遊戲名稱。

您必須將輸入提示放在while循環中。
我認爲最好先收集列表中的所有數據,然後寫入文件。

filename = 'games.txt' 
print("When you want to finish adding games just type 'done'") 

games = [] 
game = '' 
while True: 
    game = input('Whats your favorite game? ') 
    if game == 'done': 
     break 
    games.append(game) 

with open(filename, 'w') as file_object: 
    for game in games: 
     file_object.write(game + str("\n")) 
+0

但是這不會導致問題,因爲'遊戲'是在while循環之後定義的嗎? – CholoBoy

+0

是的,很好,糾正。 –

+0

在測試了幾次代碼後,我發現當我輸入'done'時,它將它添加到列表中,所以我在第一個while循環後添加了「games.remove('done')」 – CholoBoy

相關問題