1 Frage: Versuch, die Ausgabe der Stoppuhr zu justieren, zu zentrieren und zu justieren

Frage erstellt am Wed, May 8, 2019 12:00 AM

Ich habe ein Stoppuhrprogramm, das voll funktionsfähig ist. Ich versuche nur, die auszurichtende Ausgabe zu formatieren.

Dies war ein Abschnitt des Codes vor dem Versuch, Folgendes zu bearbeiten:

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

Dies war einer der Versuche, die Ausgabe auszurichten:

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

Ich erhalte den Fehler:

 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. Fehler ist gut lesbar. Und Sie haben einen anderen Code veröffentlicht als den, den Sie ausgeführt haben.
    2019-05-08 16: 16: 50Z
1 Antworten                              1                         

ljust und center sind Zeichenfolgenmethoden. Sie müssen den Wert in Zeichenfolgen konvertieren, bevor Sie diese Methoden aufrufen:

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

Sie können auch die Formatoptionen str.format und verwenden:

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

Bei str.format ist die Konvertierung in eine Zeichenfolge implizit.

    
1
2019-05-08 16: 15: 11Z
  1. Oh man, vielen Dank! Ich habe versucht, es in eine Zeichenfolge umzuwandeln, aber mein Problem bestand im wahrsten Sinne des Wortes nur aus einer Parene!
    2019-05-08 16: 33: 32Z
Quelle platziert Hier