2017-10-18 159 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

相关问题