2010-06-23 10 views
3

Existe-t-il une fonction python similaire à raw_input, mais qui n'affiche pas de retour à la ligne lorsque vous appuyez sur Entrée. Par exemple, lorsque vous appuyez sur Entrée dans une invite Forth, elle n'affiche pas de saut de ligne.
Edit:
Si j'utilise le code:L'entrée Python se termine sans afficher de nouvelle ligne

data = raw_input('Prompt: ') 
print data 

que la sortie pourrait être:

Prompt: Hello 
Hello 

parce qu'il a imprimé une nouvelle ligne quand je pressais entrer. Je veux une fonction similaire à raw_input qui n'affiche pas le retour à la ligne. Donc, si la fonction que je voulais était appelé special_input et j'ai utilisé le code:

data = special_input('Prompt: ') 
print data 

que la sortie serait quelque chose comme:

Prompt: Hello Hello 
+0

Je ne suis pas sûr de raw_input, mais la fonction d'impression ne incluez une nouvelle ligne si vous utilisez une virgule après eg (print "Hello",) –

+0

Dans les versions Python de moins de 3, print n'est pas une fonction, c'est un mot-clé, donc ajouter une virgule change les choses car elle a une syntaxe spéciale. raw_input est une fonction, donc elle n'a pas de syntaxe spéciale qu'un mot-clé peut avoir. – None

+0

duplication possible de [Comment imprimer en Python sans nouvelle ligne ni espace?] (Http://stackoverflow.com/questions/493386/how-to-print-in-python-without-newline-or- espace) –

Répondre

1

Oui, il y a d'autres façons de lire une ligne comme raw_input

Vous pouvez utiliser sys.stdin():

import sys 
line = sys.stdin.readline() 

Ou si vous voulez obtenir un mot de passe, vous pouvez également utiliser getpass.getpass():

import getpass 
line = getpass.getpass() 

Mais si vous voulez quelque chose de plus de fantaisie que vous aurez besoin d'utiliser curses

Questions connexes