2014-05-23 15 views
8

Probabilmente una domanda facile, che non riuscivo a trovare risposta a prima ...Come aggiungere un numero X di spazi in una stringa

sto formattazione di una tabella (nel testo) per assomigliare a questo:

Timestamp: Word      Number 

Il numero di caratteri compreso tra: after timestamp e l'inizio di Number deve essere 20, compresi quelli in Word (quindi rimane allineato). Utilizzando pitone Ho fatto questo:

offset = 20 - len(word) 

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

Che funziona, ma python genera un errore a me che non viene mai usato (perche 'non è). Anche se non è un grosso problema, mi chiedo solo se c'è un modo migliore per farlo.

Edit:

Dal momento che non è possibile aggiungere una risposta a questa (come è segnato duplicato) il modo migliore per sostituire tutta questa faccenda è

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

Sto votando per riaprire questa domanda perché è chiedere su come modificare una stringa, non stamparla. Sebbene ci siano risposte che si applicano ad entrambe le domande, la domanda in sé non è la stessa. È possibile che esistano risposte che si applicano solo a una di queste due domande. –

+0

@Rawing Voterò per tenerlo chiuso. Le stringhe sono immutabili in python; tu ** non puoi ** modificare una stringa – Mitch

risposta

17

È possibile moltiplicare per stringhe con i numeri di replicarli.

printer += ' ' * offset 
1

Prova

printer += ' '*offset 

invece del ciclo for

2
formattazione

String può funzionare troppo

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