2016-08-09 59 views
1

Ich bin ein Anfänger in der Programmierung und übe die Verwendung von geschachtelten for-Schleifen, um eine Multiplikationstabelle in Python 2.7.5 zu erstellen. Hier ist mein CodeErstellen Multiplikationstabelle?

x=range(1,11) 
y=range(1,11) 
for i in x: 
    for j in y: 
     print i*j 
    pass 

gut, das Ergebnis ist richtig, aber es scheint nicht in Form einer quadratischen Matrix, wie ich mir den Code verbessern helfen wish.Please

+0

können Sie über Listenverständnis lesen und solche Listen drucken. auch der 'pass' ist nutzlos. – Julien

+1

@JulienBernu: Das OP lernt gerade über grundlegende 'for' Schleifen. Sie sollten sie beherrschen, bevor sie zu einer fortgeschritteneren Syntax wie Listenergänzungen übergehen. –

+0

Sicher, 'r = Bereich (1,11); print '\ n'.join ([' '. Join (['% 4s '% (i * j) für i in r]) für j in r]) 'macht den Trick, aber es ist nicht gerade einfach zu lesen. :) Und es ist total unhilflich für jemanden, der gerade anfängt zu programmieren. –

Antwort

8

Sie ohne Zeilenumbruch gedruckt werden sollen.

x = range(1,11) 
y = range(1,11) 
for i in x: 
    for j in y: 
     print i*j, # will not break the line 
    print # will break the line 
+0

Wenn das OP über Formatierung besorgt ist Es könnten auch '\ t' oder Leerzeichen zwischen den Einträgen hinzugefügt werden. –

2

Sie können Formatierung hinzufügen konstante Zellenbreite

zu den Zahlen von Standard
x = range(1,11) 
y = range(1,11) 
for i in x: 
    for j in y: 
     # substitute value for brackets 
     # force 4 characters, n stands for number 
     print '{:4n}'.format(i*j), # comma prevents line break 
    print # print empty line 
+0

FWIW, Sie müssen nicht einmal das 'n' in der Formatzeichenfolge erwähnen, zB' '{: 3}' würde funktionieren. –

1

Python print-Anweisung fügt neue Zeile-Zeichen, um Sie in Ihrer Ausgabe haben möchten. Ich denke, Sie möchten nur ein Leerzeichen am Ende der äußeren Schleife und ein neues Zeilenzeichen am Ende der äußeren Schleife haben.

können Sie dies erreichen, indem

print i * j, # note the comma at the end (!) 

verwenden und nur das Hinzufügen eine neue Zeile am Ende des äußeren Loopblock:

print '' 

Um mehr über das Hinter Koma zu lernen, und warum es funktioniert Schauen Sie hier: "How to print in Python without newline or space?". Beachten Sie, dass es anders in Python funktioniert 3.

Der endgültige Code sollte wie folgt aussehen:

x=range(1,11) 
y=range(1,11) 
for i in x: 
    for j in y: 
     print i*j, 
    print '' 

Sie können auch aussehen ‚\ t‘ Sonderzeichen, die erlauben würden Sie besser Formatierung (auch diese alte zu erhalten Ressource ist gut genug: https://docs.python.org/2.0/ref/strings.html)

Verwandte Themen