Osa 4

Formatera utskrift

Vi har redan lärt oss tre metoder för att ge argument till print-funktionen.

Det första är +-operatorn för strängar. Den tillåter enkel kombination av strängar:

namn = "Elin"
alder = 22
print("Hej " + namn + " med din ålder på " + str(alder) + " år" )

Den här metoden fungerar inte då något av värdena inte är en sträng. I exemplet ovan har variabeln alder konverterats till en sträng med funktionen str, i och med att variabeln är ett heltal.

Den andra metoden är att ge alla delar av strängen som separata argument. Då skiljer man dem åt med kommatecken:

print("Hej", namn, "med din ålder på", alder, "år" )

Den här koden ger likadant resultat som den föregående versionen. print-funktionen lägger vanligtvis ett mellanslag mellan varje argument. Det positiva är att olika segment kan ha olika datatyper, så man behöver inte konvertera någonting till en sträng.

Om du vill avlägsna mellanslagen som läggs till automatiskt, kan du ge ett argument med namnet sep:

print("Hej", namn, "med din ålder på", alder, "år", sep="")

Det här skriver ut:

Exempelutskrift

HejElinmed din ålder på22år

Argumentet sep="" är ett namngivet argument. Det specificerar att alla argument ska avgränsas med en tom sträng. Du kan använda vilken som helst sträng som avgränsare. Till exempel om du vill ha varje argument på en skild rad kan du använda avgränsaren "\n" som innebär radbrytning.

print("Hej", namn, "med din ålder på", alder, "år", sep="\n")
Exempelutskrift

Hej Elin med din ålder på 22 år

Vanligtvis avslutas print-funktionen med ny rad, men du kan också ändra på det. Det namngivna argumentet end bestämmer vad som ska finnas i slutet av en rad. Om end är en tom sträng, kommer ingen radbrytning att skrivas ut i slutet av utskriften:

print("Hej ", end="")
print("allihopa!")
Exempelutskrift

Hej allihopa!

f-strängar

Det tredje sättet att förbereda strängar för utskrift är f-strängar, som vi redan bekantade oss med i kursens första modul. Det föregående exemplet med namnet och åldern skulle se så här ut med f-strängar:

namn = "Elin"
alder = 22
print(f"Hej {namn} med din ålder på {alder} år")

Hittills har vi bara använt oss av enkla f-strängar, men de är väldigt flexibla när det kommer till formatering av innehållet i strängen. Ett vanligt användningsområde är att specificera antalet decimaler hos ett flyttal. Normalt är antalet ganska stort:

siffra = 1/3
print(f"Siffran är {siffra}")
Exempelutskrift

Siffran är 0.333333333333333

Vi kan ändra detta genom att inom klammerparenteser ge variabelnamnet och formateringsinstruktioner:

siffra = 1/3
print(f"Siffran är {siffra:.2f}")
Siffran är 0.33

Instruktionen .2f berättar att vi vill visa två decimaler (.2). Bokstaven f betyder att vi vill visa värdet som ett flyttal.

Här är ett annat exempel där vi reserverar ett givet antal tecken för en specifik variabel i utskriften. Om variabelns namn inte är så lång, fylls resten av utrymmet ut med blanktecken. På detta sätt kan vi t.ex. få till snygga tabelliknande utskrifter. I båda fallen nedan inkluderas variabeln namn i den resulterande strängen, med 15 tecken reserverat utrymme. Först är namnen vänsterjusterade, sedan högerjusterade:

namn =  ["Antonia", "Emilia", "Johan", "Maja"]
for person in namn:
  print(f"{person:15} mittplats {person:>15}")
Antonia         mittplats         Antonia
Emilia          mittplats          Emilia
Johan           mittplats           Johan
Maja            mittplats            Maja

Man kan också använda f-strängar utanför print-funktionen. De kan tilldelas till variabler och kombineras med andra strängar:

namn = "Leffe"
alder = 59
stad = "Villmanstrand"
halsning = f"Hej {namn}, du är {alder} år"
print(halsning + f", du bor i {stad}")
Exempelutskrift

Hej Leffe, du är 59 år, du bor i Villmanstrand

Du kan tänka att vi med en f-sträng kan skapa en helt vanlig sträng baserat på "argumenten" mellan klammerparenteserna.

Loading
Loading...
:
Loading...

Log in to view the quiz

Du har nått slutet av den här delen! Fortsätt till nästa del:

Se dina poäng genom att klicka på cirkeln nere till höger av sidan.