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:
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")
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!")
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}")
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}")
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.
Log in to view the quiz
Se dina poäng genom att klicka på cirkeln nere till höger av sidan.