Sử dụng phương pháp str.format()
của chuỗi định dạng thay vì:
'{number:0{width}d}'.format(width=2, number=4)
Demo:
>>> '{number:0{width}d}'.format(width=2, number=4)
'04'
>>> '{number:0{width}d}'.format(width=8, number=4)
'00000004'
Các str.format()
formatting specification cho phép nhiều đèo, nơi lĩnh vực thay thế có thể điền vào các thông số để định dạng kỹ thuật.
Trong ví dụ trên, các đặc điểm kỹ thuật đệm rộng mã hóa cứng sẽ trông như thế:
'{:02d}'.format(4)
hoặc
'{number:02d}'.format(number=4)
với một tham số được đặt tên. Tôi vừa thay thế chỉ số chiều rộng 2
bằng một trường thay thế khác.
Để có được tác dụng tương tự với kiểu cũ %
chuỗi định dạng bạn cần phải sử dụng *
nhân vật width:
'%0*d' % (width, number)
nhưng điều này chỉ có thể được sử dụng với một tuple của giá trị (định dạng từ điển không phải là được hỗ trợ) và chỉ áp dụng cho chiều rộng trường; các tham số khác trong định dạng không hỗ trợ các tham số động.
Nguồn
2013-08-01 21:13:50
vĩ đại giải thích. Kiểu được đề xuất để định dạng là định dạng mới, với {}? –
Có, định dạng mới linh hoạt hơn rất nhiều. –