Programmeringskurs: 1.4 Skrive ut tall og tekst sammen
Formatert tekst
Det kan fort bli arbeidsomt å måtte blande variabler og tekst når vi skal skrive ut sammensatt tekst. Vi har også sett at det kan være utfordrende å blande tekst og tall. Et alternativ er å bruke formatert tekst. Da kan vi blande tekstlig innhold med variabler vi har definert, og med annen kode. Vi setter bokstaven f foran apostrofen for å si fra at en streng er en formatert tekst. Da kan vi sette inn variabler og annen kode i tekststrengen ved at vi setter dette mellom klammeparenteser {}.
Lag et program hvor du definerer to variabler. Verdien til den ene variabelen skal være strengen "Anne", og den andre skal ha verdien 13. Bruk formatert tekst til å skrive ut meldingen
Jeg heter Anne og er 13 år gammel.
hvor "Anne" og 13 er satt inn ved å bruke variablene du definerte.
Vi definerer to variabler, som vi kaller navn og alder:
navn = "Anne"
alder = 13
Vi bruker formatert tekst til å skrive ut meldingen slik:
print(f"Jeg heter {navn} og er {alder} år gammel.")
Når vi kjører programmet, blir resultatet:
Jeg heter Anne og er 13 år gammel.Prøv selv i editoren under eksempelet.
I eksempelet brukte vi variabler inne i klammeparentesene. Vi kan også skrive kode direkte i klammeparentesene. I mange tilfeller kan dette være praktisk.
Formatert tekst skriver vi inn slik:
f"Tekst blandet med {variabel/kode} på denne måten."
I klammeparenteser kan vi skrive inn både variabelnavn og annen kode.
Ofte er det praktisk å lagre den formaterte teksten som en egen variabel.
Lag et program hvor brukeren skal skrive inn radius i en sirkel.
Programmet skal så skrive ut en setning som forteller hva arealet til sirkelen er. Bruk at #\pi = 3,14# og husk at arealet av en sirkel er gitt ved #\pi r^2#.
Bruk programmet til å regne ut arealet av en sirkel hvor radius er #5,3#.
Løsning
Vi skriver programmet slik:
r = float(input("Skriv inn radius i sirkelen:"))
areal_tekst = f"Arealet av en sirkel med radius {r} er {3.14*r**2}."
print(areal_tekst)
Nedenfor kan du kjøre programmet ved å trykke på .
Når vi kjører programmet og skriver inn at radius er 5.3 blir resultatet:
Arealet av en sirkel med radius 5.3 er 88.2026.
Vi ser at svaret i eksempelet ovenfor har 4 desimaler. Du kan selv bestemme hvor mange desimaler du ønsker å vise. Legger vi til : .2f i den siste klammeparentesen, slik at det står {3.14*r**2: .2f}, vil du få 2 desimaler i svaret. På samme måte vil : .3f gi 3 desimaler, : .1f gi 1 desimal og så videre. Nedenfor ser du et par eksempler. Du kan selv endre i koden hvis du ønsker. Trykk på for å kjøre programmet, trykk på for å gå tilbake til koden.
Når vi setter inn tallverdier i formatert tekst, kan vi runde av ved å skrive
tallverdi: .nf
der n er antall desimaler og f står for float – som er et desimaltall.
Det vi har skrevet ut med print frem til nå, har havnet på én linje. Med formatert tekst kan vi legge inn linjeskift i teksten hvis den er omsluttet av tre apostrofer. Dersom koden vår er
tekst = f"""
Arealet av en sirkel med raidus {r} er {3.14*r**2:.2f}.
Omkretsen av sirkelen er {2*3.14*r:.1f}."""
print(tekst)
og variabelen r har verdien 5.3, blir resultatet slik:
Arealet av en sirkel med radius 5.3 er 88.20.
Omkretsen av sirkelen er 33.3
Siden vi setter inn variabler og kode i krøllparenteser, må vi sette en f foran de første tre apostrofene.