1 Câu hỏi: Cố gắng đầu ra sai, trung tâm và bất công của đồng hồ bấm giờ

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi có một chương trình đồng hồ bấm giờ có đầy đủ chức năng. Tất cả những gì tôi đang cố gắng làm là định dạng đầu ra được căn chỉnh.

Đây là một phần của mã trước khi thử chỉnh sửa:

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

Đây là một trong những nỗ lực để căn chỉnh đầu ra:

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

Tôi đang gặp lỗi:

 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. Lỗi khá dễ đọc. Và bạn đã đăng một mã khác với những gì bạn đã chạy.
    2019-05-08 16: 16: 50Z
1 Câu trả lời                              1                         

ljustcenter là các phương thức chuỗi. Bạn phải chuyển đổi giá trị thành chuỗi trước khi bạn gọi các phương thức đó:

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

Bạn cũng có thể sử dụng str.format tùy chọn định dạng :

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

Với str.format việc chuyển đổi thành chuỗi là ẩn.

    
1
2019-05-08 16: 15: 11Z
  1. Ôi trời, cảm ơn rất nhiều! Tôi đã thử chuyển đổi nó thành một chuỗi nhưng vấn đề của tôi thực sự chỉ là một lời cảm ơn!
    2019-05-08 16: 33: 32Z
nguồn đặt đây