2009-10-04 4 views
0

Bonjour à tous Je suis actuellement nouveau à python, et j'essaye d'écrire un programme où l'utilisateur peut entrer un message et la sortie montrera le code numérique du message, mais au en même temps, j'ai besoin d'écrire le code numérique dans un fichier supplémentaire.Comment espacer un fichier d'écriture

Ainsi, par exemple l'utilisateur entre le mot « Bonjour » L'utilisateur verra la sortie « 72 101 108 108 111 »

Maintenant que la production devrait également être copié dans un document externe étiqueté comme mon « EncryptedMessage. txt "

Les numéros sont écrits dans le dossier mais il n'y a pas d'espace entre eux alors quand je le mets dans le décodeur, il ne décodera pas, est-il de toute façon pour moi de prendre un espace entre eux?

Exemple de mon codage. Désolé, je ne suis pas très bon avec les termes de programmation.

Répondre

2

simplement ajouter manuellement un espace:

outfile.write(str(ascii) + " ") 
0

Gardez à l'esprit que la réponse de cobbal ajoutera un espace supplémentaire à la fin du fichier. Vous pouvez dépouiller de l'aide:

s.rstrip(str(ascii)) 
+0

Merci cobbal, et Phillip pour les réponses. Je me suis dit que ça devait être quelque chose de simple qui me manquait! – Ray

5

Vous pouvez le faire sans la boucle en utilisant la compréhension de la liste Python et la méthode join pour ajouter les espaces entre les valeurs ascii.

" ".join([str(ord(c)) for c in message]) 

Ceci évaluera à une chaîne de valeurs ASCII séparées par des espaces.

+0

c'est probablement la meilleure façon de le faire. Juste une note cependant, les crochets sont inutiles car join acceptera un itérateur – cobbal

+0

@cobbal bon point – tarn