Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将游戏名称添加到文件中?_Python_Python 3.x_While Loop - Fatal编程技术网

Python 将游戏名称添加到文件中?

Python 将游戏名称添加到文件中?,python,python-3.x,while-loop,Python,Python 3.x,While Loop,你好,我正在做一个学校作业,上面有这些说明 编写一个while循环,提示用户选择他们喜欢的游戏。什么时候 他们输入游戏名称,在屏幕上打印一条消息,然后添加 在名为games.txt的文件中记录他们日志的一行。确保每个 条目出现在文件中的新行上 filename = 'games.txt' print("When you want to finish adding games just type 'done'") games = [] game = '' while True: game

你好,我正在做一个学校作业,上面有这些说明

编写一个while循环,提示用户选择他们喜欢的游戏。什么时候 他们输入游戏名称,在屏幕上打印一条消息,然后添加 在名为games.txt的文件中记录他们日志的一行。确保每个 条目出现在文件中的新行上

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"))
我很难让循环多次询问,而不是一次又一次地添加游戏。另外,我不希望
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)

您可以看到,如果我运行它,并将“Destiny 2”作为一个游戏,它将继续将Destiny 2添加到名为
games.txt
的文件中,直到我停止程序。

您当前有一个无限循环,无限期地写入文件中输入的最后一个游戏名称

必须将输入提示置于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"))

但是,既然“game”是在while循环之后定义的,那么这不会导致问题吗?在测试了几次代码之后,我发现当我键入“done”时,它会将其添加到列表中,所以我只是在第一个while循环之后添加了“games.remove('done')”。是的,你是正确的,我修复了它,抱歉,提示:看最后一段代码,缺少撇号和括号