2014-05-23 3 views
8

Wahrscheinlich eine einfache Frage, die ich nicht ganz die Antwort finden, bevor ...Wie X Anzahl der Räume in einen String

Ich Formatierung eine Tabelle (im Text) zu sehen wie folgt hinzuzufügen:

Die Anzahl der Zeichen zwischen dem: nach dem Zeitstempel und dem Anfang der Zahl soll 20 sein, einschließlich derjenigen im Wort (damit es ausgerichtet bleibt). Mit Python Ich habe dies getan:

offset = 20 - len(word) 

    printer = timestamp + ' ' + word 
    for i in range(0, offset): 
     printer += ' ' 
    printer += score 

Welche funktioniert, aber Python wirft bei mir einen Fehler, dass ich nie verwendet ("denn es ist nicht). Obwohl es keine große Sache ist, frage ich mich, ob es einen besseren Weg dafür gibt.

Edit:

Da ich keine Antwort auf diese hinzufügen können (wie es markiert duplicate) den besseren Weg, diese ganze Sache zu ersetzen ist

printer = timestamp + ' ' + word.ljust(20) + score 
+0

Ich wähle diese Frage wieder zu öffnen, weil es zu fragen über das Ändern einer Zeichenfolge, nicht das Drucken. Obwohl es Antworten gibt, die für beide Fragen gelten, ist die Frage an sich nicht dieselbe. Es ist möglich, dass es Antworten gibt, die nur für eine dieser beiden Fragen gelten. –

+0

@Rawing Ich würde dafür stimmen, dass es geschlossen bleibt. Strings sind in Python unveränderlich; Sie ** können ** keine Zeichenfolge ändern – Mitch

Antwort

17

Sie durch Strings durch Zahlen multiplizieren replizieren sie.

printer += ' ' * offset 
1

printer += ' '*offset 

statt der for-Schleife Versuchen

2

String Formatierung arbeiten kann zu

'{}: {: <20s}{}'.format("Timestamp", "Word", 200) 
Timestamp: Word    200 
Verwandte Themen