Ik probeer length = 001
in 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 length
naar 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!