1 Вопрос: Попытка настроить, центрировать и настроить вывод секундомера

вопрос создан в Wed, May 8, 2019 12:00 AM

У меня есть полнофункциональная программа секундомера. Все, что я пытаюсь сделать, это отформатировать вывод для выравнивания.

Это был фрагмент кода перед попыткой редактирования:

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

Это была одна из попыток выровнять вывод:

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

Я получаю ошибку:

 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. Ошибка довольно читабельна. И вы разместили код, отличный от того, что вы запустили.
    2019-05-08 16: 16: 50Z
1 ответ                              1                         

ljust и center являются строковыми методами. Вы должны преобразовать значение в строки, прежде чем вызывать эти методы:

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

Вы также можете использовать str.format и параметры формата :

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

С str.format преобразование в строку является неявным.

    
1
2019-05-08 16: 15: 11Z
  1. О, человек, большое спасибо! Я попытался преобразовать это в строку, но моя проблема была буквально просто парен, спасибо!
    2019-05-08 16: 33: 32Z
источник размещен Вот