Ik'ben vandaag begonnen met programmeren en heb dit probleem met Python. Het is nogal dom, maar ik kan er niet achter komen hoe ik het moet doen. Wanneer ik het print commando gebruik, drukt het af wat ik wil en gaat dan naar een andere regel. Bijvoorbeeld:
print "this should be"; print "on the same line"
Zou moeten opleveren:
dit zou op dezelfde lijn moeten staan
maar in plaats daarvan komt er:
dit zou moeten zijn op dezelfde lijn
Meer precies probeerde ik een programma te maken met if
dat me vertelde of een getal een 2 was of niet
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)"
Maar het herkent de laatste (x)
niet als de ingevoerde waarde, en drukt juist af: "(x)" (de letter met de haakjes). Om het te laten werken moet ik schrijven:
print "Nope, that is not a two. That is a"; print (x)
En als ik b.v. test2(3)
invoer dan geeft dat:
Nope, dat is geen twee, dat is een 3
Dus of ik moet ervoor zorgen dat Python mijn (x) binnen een afdrukregel herkent als het getal; of ik moet twee aparte dingen afdrukken maar wel op dezelfde regel. Alvast bedankt en sorry voor zo'n domme vraag.
BELANGRIJKE OPMERKING: Ik gebruik versie 2.5.4
Nog een opmerking: Als ik print "Thing" , print "Thing2"
zet staat er "Syntax error" bij de 2e print.
In Python 3.x, kun je het end
argument voor de print()
functie gebruiken om te voorkomen dat een newline karakter wordt afgedrukt:
print("Nope, that is not a two. That is a", end="")
In Python 2.x, kun je een komma achteraan gebruiken:
print "this should be",
print "on the same line"
Je hebt dit echter niet nodig om eenvoudig een variabele af te drukken:
print "Nope, that is not a two. That is a", x
Merk op dat de komma nog steeds resulteert in een spatie aan het eind van de regel, d.w.z. het'is equivalent aan het gebruik van end=" "
in Python 3. Om ook de spatie te onderdrukken, kunt u gebruik maken van
from __future__ import print_function
om toegang te krijgen tot de Python 3 print functie of gebruik sys.stdout.write()
.
Je hoeft alleen maar te doen:
print 'lakjdfljsdf', # trailing comma
Echter in:
print 'lkajdlfjasd', 'ljkadfljasf'
Er is impliciete spatie (d.w.z. ' '
).
Je hebt ook de mogelijkheid om:
import sys
sys.stdout.write('some data here without a new line')
Gebruik een komma achteraan om te voorkomen dat een nieuwe regel wordt gepresenteerd:
print "this should be"; print "on the same line"
Zou moeten zijn:
print "this should be", "on the same line"
Bovendien kunt u de variabele die wordt doorgegeven gewoon aan het einde van de gewenste string vastmaken door:
print "Nope, that is not a two. That is a", x
U kunt ook gebruik maken van:
print "Nope, that is not a two. That is a %d" % x #assuming x is always an int
U kunt aanvullende documentatie raadplegen over string formattering met behulp van de %
operator (modulo).