2010-03-27 25 views
1

foin, je viens de faire ce qui suit:Pourquoi la sortie eclipse + pydev print() semble étrange avec deux chaînes de caractères?

a = input("give a word: ") 
b = input("give another word: ") 

c = a + " " + b 

print("result is", c) 

et obtenir la sortie comme suit:

give a word: name 
give another word: word 
result is name 
word 

ma question est pourquoi la sortie sur pydev ou éclipse console dans deux lignes? Je m'attendais à produire comme suit:

give a word: name 
give another word: word 
result is name word 

comment et pourquoi cela m'arrive? sur cmd son aspect bien ?? !!

aussi j'ai trouvé que python enregistre les chaînes avec "\ r", je pense que c'est celui qui fait ce problème sur console pydev, n'est-ce pas?

+0

Yo, le résultat est le nom, bro! Mot! – Thomas

+0

quoi ?, je n'ai pas compris ce que vous dites – srisar

+0

Ne t'occupe pas de ça. Vous pouvez/devriez utiliser 'raw_input' au lieu de' input'. C'est moins effrayant parce qu'il ne fait pas un 'eval'. – Thomas

Répondre

1

Il me semble que Eclipse + PyDev stocke le caractère de nouvelle ligne dans la chaîne. Il existe quelques variantes du caractère de nouvelle ligne en fonction du système d'exploitation: \ n, \ r, \ r \ n.

Dans tous les cas, je pense que ce qui suit devrait résoudre votre problème:

a = raw_input("give a word: ").strip() 
b = raw_input("give another word: ").strip() 
c = a + " " + b 

J'ai testé ce code sur PyDev pour Eclipse Galileo sur Windows7 et il fonctionne.

Espérons que cela aide

+0

oui, merci, première impression est la meilleure impression, et je viens de revenir à Wing IDE, hehehe – srisar

+0

Je n'aime pas le concept de "fanboys" et je ne l'aime pas quand les gens préconisent l'utilisation de quelque chose sans raison valable (comme le font habituellement les fanboys). Cependant, j'ai utilisé à la fois Eclipse + PyDev et WingIDE. Je trouve Eclipse de loin meilleur et je vous encourage fortement à ne pas abandonner sans lui donner une chance équitable. – inspectorG4dget

0

C'est très étrange.

Recevez-vous une nouvelle ligne après le mot? (vous pouvez vérifier en émettant une autre commande d'impression). Eclipse est toujours bizarre sur l'entrée de la console. Je ne serais pas surpris si d'une façon ou d'une autre il garde un CR ou un LF (ou les deux) dans la chaîne, de sorte que lorsque vous imprimez chacun d'eux, vous obtiendrez un saut de ligne. Mais alors vous devriez obtenir une autre ligne après le mot.

+0

non im ne pas obtenir un autre nouvelle ligne après mot, juste un, en mode débogage la valeur est comme suit: a = str: nom – srisar