Drucken 5 zahlen in einer Zeile
Habe ich ein Programm schreiben, das drucken der zahlen von 1 bis 50, aber mit 5 zahlen in einer Zeile, wie:
1,2,3,4,5
6,7,8,9,10
so bis 50 ohne Listen verwenden
for i in range(2,51):
if i%5==0:
print i
dies ist mir 5,10,15,20
Bitte helfen Sie mir
- verwenden Sie ein ',' nach dem drucken zu schreiben die Nummer auf der gleichen Linie, z.B. print i,
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein paar Hinweise:
Können Sie beginnen, fast so, wie Sie es getan hat (außer Sie benötigen, um start-1 - 2 ist wirklich seltsam!-):
aber dann müssen Sie zu segue in einem
else
Klausel, dassif
, weil Sie tun wollen, etwas zu drucken, auch wenni
ist nicht ein Vielfaches von 5, -- gerade etwas verschiedenen von der einfachenprint i
man schon tun, wenni
ist ein Vielfaches von 5...:Wie die anderen Antworten schon gesagt, das nachgestellte Komma bedeutet "kein newline noch"!-) ((Es ist deutlicher und sinnvoller in Python 3.wie auch immer, aber Sie sind eindeutig auf Basis von Python 2.etwas, und in diesen Versionen das ist, was Sie tun müssen)).
Habe ich noch nie verwendet Python, aber das sollte in der Nähe sein, wenn nicht Recht.
Denken Sie auch daran, dass mit
print
bewirkt, dass eine neue Zeile zu beginnen. Es sei denn, wie oben bemerkt, ein Komma ist danach.Können Sie sammeln von Werten mit einem string für den Ausdruck später.
Einige Hinweise
Drucken 1 bis 50, muss man n+1 für eg, 1 bis 51 in Bereich Funktion, seine
(i=1;i<51,i++)
in C-artigen syntaxprint-Komma-wenn Sie möchten, dass zwischen den einzelnen Ziffern
drucken Zeilenumbruch für jede 5, die Sie können benutzen Sie einfach den aktuellen
if i%5==0:
aber drucken leere Zeile, statti
Verketten num + string "," Sie können
`i` or str(i) , you can do like `i` +","
Wenn Sie nicht brauchen, Komma am Ende, Sie könnte wie i%5 print "," else print "\n" =>
(i%5 and "," or "\n")
print i
drucken ich Zeile für Zeile, undprint i,
wird print in der gleichen Zeilejust my 2 cents
EDIT: ich bitte um Entschuldigung, wusste nicht, dies war eine Hausaufgabe. Ich reeeally müssen überprüfen Sie die tags, bevor Sie antwortet. Hier eine Erklärung, was geschehen muss.
Offensichtlich wissen Sie, dass Sie versuchen Ausgabe aufeinander folgenden zahlen von 1 bis 50, also brauchst du einen Zähler. Sie haben herausgefunden, dass Sie benötigen, ein
range()
nennen, aber es muss sein, von 1 bis 51, nicht von 2 bis 50.Den Grund der
range()
Aufruf werden muss, von 1 bis 51, ist dies: es wird starten Sie die variablei
bei1
, dann überprüfen, um zu sehen, ob es hat sein Ziel erreicht (51
) vor dem looping. Wenn das Ziel erreicht ist (das bedeutet, wenni == 51
) wird es beendet die Schleife sofort ohne Ausführung der Schleife code. Also anstatt gehen von 1 bis 50, Sie gehen von 1 bis 51, so dass wir nicht überspringen die 50-iteration.Weiter, Sie gehen zu wollen, haben die zahlen auf dem Bildschirm angezeigt wird. Aber mit python ist
print
Befehl druckt jede Zahl in einer neuen Zeile! Das ist offensichtlich nicht das, was Sie wollen. So dass Sie gehen zu müssen, um eine Puffer-string Anhängen, jede Zahl zu, bis Sie bereit sind, drucken Sie die Zeile. Sie können es nennen, 'output' oder was auch immer.Persönlich mag ich klare Puffer VOR der
for
loop nur sicher sein, keine bleibende Spuren der Erinnerung finden Ihren Weg in den Ausgang. Nenn mich paranoid. Also Schreibe ichoutput = ""
auf einer Zeile vor der Schleife.Jetzt hast du einen string buffer, der alle Sie tun müssen ist, Folgen einem logischen Ablauf:
i
auf den Pufferoutput
.i
ist ein Vielfaches von 5, drucken Sie die Pufferoutput
und setzen Sie es wieder auf eine leere Zeichenfolge. (Wir dies tun, so dass wir beginnen können, die Puffer für die nächste Zeile.)i
ist NICHT ein Vielfaches von 5, fügen Sie ein Komma, um dieoutput
Puffer, so dass die nächste Nummer, die Hinzugefügt werden, werden nach dem Komma.Diese Schritte sind ziemlich einfach herauszufinden. Schritt 2 haben Sie bereits gesehen, bevor Sie..., um Zu überprüfen, ob eine Zahl ein Vielfaches der anderen Zahl ist, verwenden Sie einfach
%
. WennA % B == 0
dann ist A ein Vielfaches von B.Sollte es eine ziemlich einfache Erklärung dafür, wie dieses problem zu lösen. Hoffe, es hilft.
Und sorry für ruinieren Sie Ihre Lernerfahrung durch die Veröffentlichung der Antwort! Jetzt werden Sie verstehen, warum die Antwort arbeitet.
diesem code geben Sie die gewünschte Ausgabe.
können Sie put '
end=""
' drucken ohne Leerzeichenfür den Raum '
end=" "
'In einer Anweisung, können Sie entpacken ein generator-Ausdruck innerhalb
print
und nutzen Sie diesep
argument. Der Vorteil dieser Lösung ist es gibt keine Notwendigkeit für expliziteif
/else
bedingte Logik.