2017-10-18 5 views
1

Bonjour Je fais un travail scolaire avec ces instructionsAjouter des noms de jeux dans un fichier?

Ecrire une boucle while qui invite les utilisateurs à leur jeu favori. Quand ils entrent le nom du jeu, impriment un message à l'écran et ajoutent une ligne enregistrant leur journal dans un fichier appelé games.txt. Assurez-vous que chaque entrée apparaît sur une nouvelle ligne dans le fichier.

J'ai du mal à faire plusieurs fois la boucle au lieu d'ajouter le jeu encore et encore. En outre, je ne veux pas que le fichier games.txt perde les jeux précédents qui ont été ajoutés.


Ceci est mon code actuel:

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) 

Comme vous pouvez le voir si je cours et je mets « Destiny 2 » comme un jeu, il va continuer à ajouter le destin 2 au fichier nommé games.txt jusqu'à ce que j'arrête le programme.

Répondre

1

Vous avez actuellement une boucle infinie qui écrit indéfiniment le dernier nom de jeu entré dans le fichier.

Vous devez placer l'invite de saisie dans la boucle while.
Je pense qu'il est préférable de collecter toutes les données dans une liste, puis d'écrire le fichier.

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

Mais cela ne pose-t-il pas un problème puisque 'jeu' est défini après la boucle while? – CholoBoy

+0

Oui, bonne prise, corrigée. –

+0

Après avoir testé ce code quelques fois, j'ai trouvé que quand je tape 'done' il l'ajoute à la liste alors je viens d'ajouter "games.remove ('done')" après la première boucle while – CholoBoy