J'ai commencé à programmer aujourd'hui et j'ai ce problème avec Python. C’est assez stupide mais je n’arrive pas à trouver comment faire. Lorsque j'utilise la commande print, elle imprime ce que je veux, puis passe à une autre ligne. Par exemple :
print "this should be"; print "on the same line"
Devrait renvoyer :
cela devrait être sur la même ligne
mais renvoie à la place :
ceci devrait être sur la même ligne
Plus précisément, j'essayais de créer un programme avec if
qui me dit si un nombre est un 2 ou non.
def test2(x):
if x == 2:
print "Yeah bro, that's tottaly a two"
else:
print "Nope, that is not a two. That is a (x)"
Mais il ne reconnaît pas le dernier (x)
comme la valeur entrée, et imprime plutôt exactement : " ;(x)" ; (la lettre avec les crochets). Pour que cela fonctionne, je dois écrire :
print "Nope, that is not a two. That is a"; print (x)
Et si, par exemple, je saisis test2(3)
, cela donne :
Non, ce n'est pas un deux, c'est un 3
Donc, soit j'ai besoin de faire en sorte que Python reconnaisse mon (x) à l'intérieur d'une ligne d'impression comme étant le nombre, soit j'ai besoin d'imprimer deux choses séparées mais sur la même ligne. Merci d'avance et désolé pour cette question si stupide.
NOTE IMPORTANTE : J'utilise la version 2.5.4.
Autre remarque : Si je mets print "Thing" ; , print "Thing2"
il dit "Syntax error" ; sur la 2ème impression.
Dans Python 3.x, vous pouvez utiliser l'argument end
de la fonction print()
pour empêcher l'impression d'un caractère de nouvelle ligne :
print("Nope, that is not a two. That is a", end="")
En Python 2.x, vous pouvez utiliser une virgule de fin :
print "this should be",
print "on the same line"
Vous n’en avez cependant pas besoin pour imprimer simplement une variable :
print "Nope, that is not a two. That is a", x
Notez que la virgule de fin entraîne toujours l'impression d'un espace en fin de ligne, c'est-à-dire que cela équivaut à l'utilisation de end=" ; "
en Python 3. Pour supprimer également le caractère espace, vous pouvez soit utiliser
from __future__ import print_function
pour accéder à la fonction print de Python 3 ou utiliser sys.stdout.write()
.
Vous devez simplement le faire :
print 'lakjdfljsdf', # trailing comma
Cependant dans :
print 'lkajdlfjasd', 'ljkadfljasf'
Il y a un espace implicite (c'est-à-dire ' ; '
).
Vous avez également la possibilité de :
import sys
sys.stdout.write('some data here without a new line')
Utilisez une virgule de fin pour éviter qu'une nouvelle ligne ne soit présentée :
print "this should be"; print "on the same line"
Devrait être :
print "this should be", "on the same line"
En outre, vous pouvez simplement attacher la variable passée à la fin de la chaîne de caractères souhaitée par :
print "Nope, that is not a two. That is a", x
Vous pouvez également utiliser :
print "Nope, that is not a two. That is a %d" % x #assuming x is always an int
Vous pouvez accéder à une [documentation][1] supplémentaire concernant le formatage des chaînes de caractères en utilisant l'opérateur %
(modulo).
[1] : http://docs.python.org/library/stdtypes.html#string-formatting-operations