Given:số hiển thị với số không hàng đầu
a = 1
b = 10
c = 100
Tôi muốn hiển thị một số không hàng đầu cho tất cả các số có ít hơn 2 chữ số, ví dụ:
01
10
100
Given:số hiển thị với số không hàng đầu
a = 1
b = 10
c = 100
Tôi muốn hiển thị một số không hàng đầu cho tất cả các số có ít hơn 2 chữ số, ví dụ:
01
10
100
Ở đây bạn là:
print "%02d" % (1,)
Về cơ bản % là như printf
hoặc sprint
.
Ví dụ: in "% 05d"% result ['postalCode'] cho mã bưu chính gồm 5 chữ số. –
'x ="% 02d.txt "% i' tăng TypeError (không thể nối các đối tượng 'str' và 'int'), nhưng' x = "% 02d.txt"% (i,) 'thì không. Hấp dẫn. Tôi tự hỏi đâu là tài liệu – theta
@theta Trong 2.7.6, tôi không gặp lỗi. Có lẽ đây là lỗi trong một phiên bản Python cụ thể mà họ đã khắc phục? –
x = [1, 10, 100]
for i in x:
print '%02d' % i
kết quả:
01
10
100
Đọc more information about string formatting using % trong tài liệu.
Ví dụ tài liệu hút. Họ ném bản đồ vào với mẫu số 0 đứng đầu, vì vậy thật khó để biết được cái nào trừ khi bạn đã biết nó hoạt động như thế nào. Đó là những gì mang lại cho tôi ở đây, thực sự. – Grant
Sử dụng một chuỗi định dạng - http://docs.python.org/lib/typesseq-strings.html
Ví dụ:
python -c 'print "%(num)02d" % {"num":5}'
Trong Python 2.6+ và 3.0+, bạn sẽ sử dụng phương pháp format()
chuỗi:
for i in (1, 10, 100):
print('{num:02d}'.format(num=i))
hoặc sử dụng được tích hợp (cho một số):
print(format(i, '02d'))
Xem tài liệu PEP-3101 cho các chức năng định dạng mới.
Hoạt động trong Python 2.7.5. Bạn cũng có thể sử dụng định dạng '{: 02d}' (1) nếu bạn không muốn sử dụng các đối số được đặt tên. –
Hoạt động tốt trong 2.7.2, với dấu phẩy động "{0: 04.0f}". Định dạng (1.1) cho 0001 (: 04 = ít nhất 4 ký tự, trong trường hợp này dẫn 0, .0f = dấu phẩy động không có số thập phân). Tôi biết về định dạng% nhưng muốn sửa đổi câu lệnh .format hiện có mà không cần viết lại toàn bộ * toàn bộ *. Cảm ơn! –
Bạn có thể sử dụng zfill:
print str(1).zfill(2)
print str(10).zfill(2)
print str(100).zfill(2)
in:
01
10
100
Tôi thích giải pháp này, vì nó giúp không chỉ khi xuất số, nhưng khi bạn cần gán nó cho một biến ... ví dụ x = str (datetime.date.today(). month) .zfill (2) sẽ trả về x là '02' cho tháng feb. – EroSan
Hoặc này:
print '{0:02d}'.format(1)
Cách pythonic để làm điều này:
str(number).rjust(string_width, fill_char)
Bằng cách này, chuỗi gốc được trả về không đổi nếu chiều dài của nó lớn hơn string_width. Ví dụ:
a = [1, 10, 100]
for num in a:
print str(num).rjust(2, '0')
Kết quả:
01
10
100
Ma thuật của python! Câu trả lời tuyệt vời – SAAD
các giải pháp tuyệt vời !!! –
print('{:02}'.format(1))
print('{:02}'.format(10))
print('{:02}'.format(100))
in:
01
10
100
Cách này cho phép bạn lặp lại đối số vài lần trong chuỗi: 'Một số không: {0:02}, hai số không: {0:03}, chínzeros: {0: 010} '. Định dạng (6)' – srodriguex
Chỉ tương thích với Python 3. Nếu sử dụng Python 2.7, làm 'print '{: 02}'. Định dạng (1)' – Blairg23
width = 5
num = 3
formatted = (width - len(str(num))) * "0" + str(num)
print formatted
Hoặc một giải pháp.
"{:0>2}".format(number)
Rõ ràng hơn, Cảm ơn bạn. – Zety
Đây sẽ là cách Python, mặc dù tôi sẽ bao gồm các tham số cho rõ ràng - '" {0: 0> 2} ".định dạng (số) ', nếu ai đó sẽ muốn nLeadingZeros họ nên lưu ý họ cũng có thể làm:' "{0: 0> {1}}". định dạng (số, nLeadingZeros + 1) ' –
Nếu đối phó với những con số mà là một hoặc hai chữ số:
'0'+str(number)[-2:]
hoặc '0{0}'.format(number)[-2:]
Trong Python 3.6, bạn có thể làm điều này một cách ngắn gọn với f
-strings bằng cách sử dụng:
f'{val:02}'
in biến có tên val
với giá trị fill
của 0
và width
trong số 2
.
Ví dụ cụ thể của bạn, bạn có thể làm điều này độc đáo trong một vòng lặp:
a, b, c = 1, 10, 100
for val in {a, b, c}:
print(f'{val:02}')
mà in:
01
10
100
trùng lặp: http://stackoverflow.com/questions/733454/best-way -to-định dạng-số nguyên-như-chuỗi-với-hàng đầu-số không – darkgaze
Tôi đoán câu hỏi được liên kết nên là bản sao của điều này (về số phiếu, chất lượng câu trả lời và tuổi) – TheEspinosa