J'ai commencé la programmation aujourd'hui et j'ai ce problème avec Python. C'est assez bête mais je n'arrive pas à comprendre comment le faire. Lorsque j'utilise la commande d'impression, elle imprime ce que je veux et passe ensuite à une autre ligne. Par exemple:
print "this should be"; print "on the same line"
Devrait retourner:
cela devrait être sur la même ligne
mais retourne à la place:
cela devrait être
sur la même ligne
Plus précisément, j'essayais de créer un programme avec if
qui me disait si un nombre était 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)
en tant que valeur entrée et affiche 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 J'entre test2(3)
qui donne:
Non, ce n'est pas un deux, c'est un
3
Donc soit j'ai besoin de faire que Python reconnaisse mon (x) dans une ligne d'impression en tant que nombre; ou pour imprimer deux choses distinctes mais sur la même ligne. Merci d'avance et désolé pour une question aussi stupide.
NOTE IMPORTANTE: J'utilise version 2.5.4
Autre remarque: si je mets print "Thing" , print "Thing2"
, le message "Erreur de syntaxe" s'affiche lors de la deuxiè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="")
Dans Python 2.x, vous pouvez utiliser une virgule de fin:
print "this should be",
print "on the same line"
Vous n'avez pas besoin de cela pour simplement imprimer une variable, cependant:
print "Nope, that is not a two. That is a", x
Notez que la virgule de fin crée toujours un espace en fin de ligne, c’est-à-dire qu’elle revient à utiliser end=" "
dans Python 3. Pour supprimer également le caractère d’espace, vous pouvez soit: utilisation
from __future__ import print_function
pour accéder à la fonction d'impression Python 3 ou utilisez sys.stdout.write()
.
Dans Python 2.x , placez simplement un ,
à la fin de votre instruction print
. Si vous voulez éviter l'espace vide que print
met entre les éléments, utilisez sys.stdout.write
.
import sys
sys.stdout.write('hi there')
sys.stdout.write('Bob here.')
rendements:
hi thereBob here.
Notez qu'il n'y a pas de nouvelle ligne ou d'espace vide entre les deux chaînes.
Dans Python 3.x , avec sa fonction print () , vous pouvez simplement dire
print('this is a string', end="")
print(' and this is on the same line')
et obtenir:
this is a string and this is on the same line
Il existe également un paramètre appelé sep
que vous pouvez définir lors de l’impression avec Python 3.x pour contrôler la manière dont les chaînes adjacentes seront séparées (ou non, en fonction de la valeur affectée à sep
)
Par exemple.,
Python 2.x
print 'hi', 'there'
donne
hi there
Python 3.x
print('hi', 'there', sep='')
donne
hithere
Si vous utilisez Python 2.5, cela ne fonctionnera pas, mais pour les personnes utilisant 2.6 ou 2.7, essayez
from __future__ import print_function
print("abcd", end='')
print("efg")
résulte en
abcdefg
Pour ceux qui utilisent 3.x, cela est déjà intégré.
Vous devez simplement faire:
print 'lakjdfljsdf', # trailing comma
Cependant dans:
print 'lkajdlfjasd', 'ljkadfljasf'
Il y a des espaces implicites (ie ' '
).
Vous avez également la possibilité de:
import sys
sys.stdout.write('some data here without a new line')
Utilisez une virgule pour empêcher une nouvelle ligne de se présenter:
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 en cours de transmission à la fin de la chaîne souhaitée par:
print "Nope, that is not a two. That is a", x
Vous pouvez aussi utiliser:
print "Nope, that is not a two. That is a %d" % x #assuming x is always an int
Vous pouvez accéder à plus de documentation concernant le formatage de chaîne à l'aide de l'opérateur %
(modulo).