1 Pytanie: Próbuję wyregulować, wyśrodkować i wyregulować wyjście stopera

pytanie utworzone w Wed, May 8, 2019 12:00 AM

Mam program stopera, który jest w pełni funkcjonalny. Wszystko, co próbuję zrobić, to sformatować wyjście do wyrównania.

To była sekcja kodu przed próbą edycji:

 lapTime = round(time.time() - lastTime, 2)
 totalTime = round(time.time() - startTime, 2)
 print ('Lap #%s: %s (%s)' % (lapNum, totalTime, lapTime), end='')

To była jedna z prób wyrównania wyjścia:

 print ('Lap ', lapNum.ljust(10, ' ')), ':',totalTime.center(20, ' '), 
 lapTime.rjust(30, ' '))

Dostaję błąd:

 File "D:/stopwatch2.py", line 19, in main
     print ('Lap ' + str(lapNum.ljust(10, ' ')), ':',totalTime.center(40, 
 ' '), lapTime.rjust(50, ' '))
 AttributeError: 'int' object has no attribute 'ljust'
    
- 1
  1. Błąd jest całkiem czytelny. I wysłałeś inny kod z tego, co uruchomiłeś.
    2019-05-08 16: 16: 50Z
1 odpowiedzi                              1                         

ljust i center są metodami łańcuchowymi. Przed wywołaniem tych metod musisz przekonwertować wartość na ciągi znaków:

print ('Lap ', str(lapNum).ljust(10, ' '), ':', str(totalTime).center(20, ' '))

Możesz także użyć str.format i opcje formatu :

print ('Lap {:<10}: {:=20}'.format(lapNum, totalTime))
# output: Lap 1         :           1557332386

Z str.format konwersja na ciąg jest niejawna.

    
1
2019-05-08 16: 15: 11Z
  1. O człowieku, dziękuję bardzo! Próbowałem przekonwertować go na ciąg znaków, ale mój problem był dosłownie tylko paren dzięki!
    2019-05-08 16: 33: 32Z
źródło umieszczone tutaj