Jeg har begynt å programmere i dag og har dette problemet med Python. Det er ganske dumt, men jeg kan ikke finne ut hvordan jeg gjør det. Når jeg bruker utskriftskommandoen, skriver den ut hva jeg vil og går deretter til en annen linje. For eksempel:
print "this should be"; print "on the same line"
Bør komme tilbake:
dette skal være på samme linje
men returnerer i stedet:
dette skal være på samme linje
Mer presist prøvde jeg å lage et program med if
som fortalte meg om et tall var en 2 eller ikke
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)"
Men det gjenkjenner ikke den siste (x)
som den angitte verdien, og skriver heller ut nøyaktig: "(x)" (bokstaven med parentesene). For å få det til å fungere må jeg skrive:
print "Nope, that is not a two. That is a"; print (x)
Og hvis jeg f.eks. skriver inn test2(3)
gir det:
Nei, det er ikke en to, det er en 3
Så enten må jeg få Python til å gjenkjenne (x) i en utskriftslinje som nummeret; eller å skrive ut to separate ting, men på samme linje. På forhånd takk og beklager et så dumt spørsmål.
VIKTIG MERKNAD: Jeg bruker versjon 2.5.4 .
En annen merknad: Hvis jeg setter 'print "Thing " , print "Thing2 ", står det "Syntaksfeil " på den andre utskriften.
I Python 3.x kan du bruke end
-argumentet til print()
-funksjonen for å forhindre at et nytt linjetegn skrives ut:
print("Nope, that is not a two. That is a", end="")
I Python 2.x kan du bruke et avsluttende komma:
print "this should be",
print "on the same line"
Du trenger ikke dette for å bare skrive ut en variabel, skjønt:
print "Nope, that is not a two. That is a", x
Merk at det etterfølgende kommaet fortsatt resulterer i at et mellomrom skrives ut på slutten av linjen, dvs. det tilsvarer å bruke end=" "
i Python 3. Hvis du også vil undertrykke mellomromstegnet, kan du enten bruke
from __future__ import print_function
for å få tilgang til utskriftsfunksjonen i Python 3 eller bruke sys.stdout.write()
.
Du trenger bare å gjøre:
print 'lakjdfljsdf', # trailing comma
Men i:
print 'lkajdlfjasd', 'ljkadfljasf'
Det er implisitt mellomrom (dvs. ' '
).
Du har også muligheten til å:
import sys
sys.stdout.write('some data here without a new line')
Bruk et avsluttende komma for å forhindre at en ny linje presenteres:
print "this should be"; print "on the same line"
Skal være:
print "this should be", "on the same line"
I tillegg kan du bare feste variabelen som sendes til slutten av ønsket streng med:
print "Nope, that is not a two. That is a", x
Du kan også bruke:
print "Nope, that is not a two. That is a %d" % x #assuming x is always an int
Du kan få tilgang til ytterligere dokumentasjon om strengformatering ved hjelp av %
-operatoren (modulo).