2014-05-23 10 views
8

prawdopodobnie proste pytanie, które nie mogłem znaleźć odpowiedzi na przed ...Jak dodać X liczba miejsc na ciąg

mam formatowania tabeli (w tekście), aby wyglądać tak:

Timestamp: Word      Number 

Liczba znaków między: po sygnaturze czasowej a początkiem numeru ma wynosić 20, w tym w polu Word (pozostanie wyrównana). Używanie Pythona Robiłem to:

offset = 20 - len(word) 

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

który pracuje, ale Python zgłasza błąd przy mnie, że nigdy nie jest używany (bo nie jest). Chociaż nie jest to wielka sprawa, zastanawiam się, czy jest lepszy sposób na zrobienie tego.

Edit:

Ponieważ nie mogę dodać odpowiedź na to (jak to jest oznaczone jako duplikat) lepszego sposobu, aby zastąpić tę całość jest

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

mam głosu, aby ponownie otworzyć na to pytanie, ponieważ jest pytaniem o modyfikowaniu ciągu, a nie drukowaniu go. Chociaż istnieją odpowiedzi na oba pytania, samo pytanie nie jest takie samo. Możliwe, że istnieją odpowiedzi, które odnoszą się tylko do jednego z tych dwóch pytań. –

+0

@Rawing Głosowałem, aby go zamknąć. Ciągi są niezmienne w pythonie; ty ** nie możesz ** zmodyfikować ciągu znaków – Mitch

Odpowiedz

17

można pomnożyć przez ciągi numerami do replikuj je.

printer += ' ' * offset 
1

Spróbuj

printer += ' '*offset 

zamiast pętli for

2
formatowanie

String mogą pracować zbyt

'{}: {: <20s}{}'.format("Timestamp", "Word", 200) 
Timestamp: Word    200 
Powiązane problemy