Desimaler i flyttall
Når vi skriver ut flyttall i Python, varierer det hvor mange desimaler som brukes. For eksempel gir koden under 1, 2, 3 eller 17 desimaler alt etter verdien til n:
for n in range(1, 11):
print(f"{1/n}")
Vi kan bruker Python-funksjonen round() til å runde av antall desimaler, for eksempel vil round(1/n, 5) runde av 1/n til 5 desimaler. round() gir imidlertid bare gjeldende siffer, så mens 1/3 vil bli skrevet ut som 0.33333, vil 1/2 bli skrevet ut som 0.5, ikke 0.50000.
Vil vi være garantert å alltid få et bestemt antall desimaler, bruker vi i stedet en formateringskode, som vi angir etter variabelen vi skal skrive ut, inni krøllparentesen i f-strengen. Formateringskoden består av et kolon, et punktum, et tall som angir antall desimaler, og en f.
Vil vi for eksempel skrive ut med 5 desimaler, blir formateringskoden :.5f. Innarbeidet i eksemplet over, blir det som vist under, endring markert med gult:
for n in range(1, 11):
print(f"{1/n:.5f}")
Nå skrives alle tallene ut med 5 desimaler, for eksempel 1/2 som 0.50000.
Vi har variabelen pi = 3.14159265.
Skriv Python-kode som oppretter variabelen og skriver den ut med 4 desimaler.
Ledende nuller
Det er også mulig å bruke en formateringskode til å sette på ledende nuller på heltall. La oss si at vi har koden under:
for n in range(0, 101, 25):
print(f"{n}")
Koden vil skrive ut:
0
25
50
75
100
Vil vi ha dette slik at enere og tiere kommer rett under hverandre, kan vi formatere ved å sette på ledende nuller så alle tallene blir skrevet ut med 3 siffer, formateringskoden markert med gult:
for n in range(0, 101, 25):
print(f"{n:03d}")
Koden vil nå skrive ut:
000
025
050
075
100
På samme måte som for å styre antall desimaler i flyttall angir vi formateringskoden etter verdien vi skal skrive ut, inni krøllparentesen i f-strengen. Formateringskoden består av et kolon, en null, et tall som angir antall siffer, og en d.
Hvis vi i formateringskoden angir færre siffer enn det tallet faktisk har, blir tallet allikevel skrevet ut med alle gjeldende siffer. Skriver vi for eksempel
print(f"{1234:03d}")
blir 1234 skrevet ut, til tross for at vi angir at vi bare vil ha 3 siffer.
Alternativ til linjeskift i print()
Når vi bruker print(), avsluttes utskriften vanligvis med et linjeskift. For eksempel vil koden under skrive ut tallene fra 1 til 10, med et linjeskift mellom hvert tall:
for n in range(1, 11):
print(n)
Vi kan imidlertid erstatte linjeskiftet med hva vi vil, ved å gi inn teksten end sammen med en streng der vi angir det vi vil ha i stedet for linjeskift. Koden under vil for eksempel skrive ut tallene fra 1 til 10 på samme linje, atskilt av et blankt tegn:
for n in range(1, 11):
print(n, end = " ")
Bruker vi spesialtegnet "\t", avsluttes utskriften med et tabulatortegn.
En detaljert oversikt over utskriftsformater finnes her: https://python-course.eu/python-tutorial/formatted-output.php
Kilder
-
- Matthes A. (2019). Python Crash Course. no starch press