Hoe pad een string met toonaangevende nullen in Python 3

Ik probeer length = 001in Python 3 te maken, maar wanneer ik het probeer af te drukken, sluit het de waarde af zonder de toonaangevende nullen (length = 1) . Hoe zou ik stoppen dit gebeurt zonder lengthnaar een string te hoeven te hoeven?


Antwoord 1, Autoriteit 100%

Gebruik de zfill()helpermethode naar links-pad elke touw, geheel getal of drijf met nullen; Het is geldig voor zowel python 2.x en Python 3.x .

Het is belangrijk op te merken dat Python 2 niet langer ondersteund .

Voorbeeldgebruik:

print(str(1).zfill(3))
# Expected output: 001

Beschrijving:

Wanneer toegepast op een waarde, zfill()retourneert een waarde links-gewatteerd met nullen wanneer de lengte van de initiële string waarde minder dan die van de toegepaste Breedte Waarde, anders, de initiële -string -waarde zoals is.

SYNTAX:

str(string).zfill(width)
# Where string represents a string, an integer or a float, and
# width, the desired length to left-pad.

Antwoord 2, Autoriteit 64%

Sinds Python 3.6 kunt u fstring gebruiken:

>>> length = 1
>>> print(f'length = {length:03}')
length = 001

Antwoord 3, Autoriteit 15%

Er zijn veel manieren om dit te bereiken, maar naar mijn mening is dit de gemakkelijkste manier in Python 3.6+:

print(f"{1:03}")

Antwoord 4, autoriteit 8%

Integere Python-getallen hebben geen inherente lengte of aantal significante cijfers. Als u wilt dat ze op een specifieke manier worden afgedrukt, moet u ze converteren naar een tekenreeks. Er zijn verschillende manieren waarop u dit kunt doen, waarmee u zaken als opvultekens en minimale lengtes kunt specificeren.

Probeer om met nullen tot minimaal drie tekens op te vullen:

length = 1
print(format(length, '03'))

Antwoord 5

Ik stel deze lelijke methode voor, maar het werkt:

length = 1
lenghtafterpadding = 3
newlength = '0' * (lenghtafterpadding - len(str(length))) + str(length)

Ik kwam hier om een lichtere oplossing te vinden dan deze!

Other episodes