Indtil videre har vi arbejdet i shell. Og hvis du kigger på eksemplet ovenfor, så lagde du måske mærke til, at der ikke var noget svar da vi indtastede variablerne længde og bredde. Det er fordi shell kun udskriver noget automatisk når det er et regnestykke.
For at tvinge shell til at lave en udskrift skal vi bruge funtionen print()
print()
funktionen udskriver det som står i parentesen:
print([det som skal udskrives])
I sidste kapitel bruge vi kun tal til at udregne regnestykker. Men Python kan også udskrive tekst. Et stykke tekst kalder man i programmering for en streng. Strenge skal i Python "pakkes ind" i enten anførselstegn ("[Selve strengen]" ) eller apostroffer ('[Selve strengen]' ).
Her er to eksempler:
>>> print("Dette er en tekststreng")
Dette er en tekststreng
>>> print('Dette er en anden tekststreng')
Dette er en anden tekststreng
Funktionen gør ikke andet end at printe indholdet af parantesen ud som en en streng (tekst). Det betyder f.eks. at hvis man skriver print(3)
, så bliver 3-tallet udskrivet som tekst.
I Python laver vi en variabel ved at koble et ord eller tegn sammen med en værdi. Der gælder følgende regler for variabler:
Et godt råd er at give dine variabler læsbare og forståelige navne. Skal du f.eks. lave en variabel til et fornavn kan det være:
Du skal navngive på den måde det giver bedst læsbarhed for dig og dem der skal læse din kode.
Jeg bruger snake case, fordi jeg synes det er nemmest at læse.
Her opretter vi 2 variabler. En for fornavn og en for alder. Herefter printer vi dem ud.
>>> fornavn="Thomas"
>>> alder=50
>>> print(fornavn)
Thomas
>>> print(alder)
50
Læg mærke til at der er sat anførselstegn omkring "Thomas". Det er fordi det er en tekststreng. Hvis jeg glemmer laver Python en fejlmeddelelse:
>>> fornavn=Thomas
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
NameError: name 'Thomas' is not defined
Det skyldes at Python ikke kan oversætte Thomas til en værdi, men skal have mit navn som en streng.
Hvis variablerne er værdier kan vi regne dem dem:
>>> a = 2
>>> b = 3
>>> a + b
5
Vi kan lave inputs i programmet ved at bruge funktionen input()
. I eksemplet laver vi variablen nyt_navn, som gemmer det navn brugere indtaster
nyt_navn = input("Hvad hedder du: ")
Når vi kører programmet kommer der en line hvor der står: "Hvad hedder du: " hvor du indtaster dit navn
>>> nyt_navn = input("Hvad hedder du: ")
Hvad hedder du:
Når du har indtastet dit navn sker der ikke mere. For at se resultatet kan vi nu printe variablen nyt_navn:
>>> print(nyt_navn)
Thomas
Når vi bruger input, så vil det man svarer altid blive gemt som en streng - altså tekst. Hvis du vil bruge det indtastede til at lave beregninger med, så skal input konverteres til en int eller en float.
Lad os sige vi gerne vil lave et lille program der beregner prisen på x antal pizzaer, hvis de koster 70 kr stykket. Programmet skal gøre følgende:
Først spørger vi: "Hvor mange pizzaer vil du købe"
antal=input("Hvor mange pizzaer vil du købe: ")
Jeg kører koden og indtaster: 10
>>> antal=input("Hvor mange pizzaer vil du købe: ")
Hvor mange pizzaer vil du købe: 10
Hvis vi nu forsøger at udregne den samlede pris ved at gange antal med 70, så får vi en fejl:
>>> antal*70
'10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010'
Antallet - altså de 10 - bliver skrevet 70 gange. Det er fordi variablen antal bliver tolket som en tekststreng. Og den har vi lige bedt om at få vist 70 gange.
Det vi skal gøre er at ændre de 70 til en talværdi, og det kan vi gøre med funktion int()
, så det bliver til et heltal eller float()
så det bliver til et decimaltal.
Her gør vi antallet til en int, fordi man kun kan købe hele pizzaer:
>>> int(antal)*70
700
Det kan gøres smartere end ovenfor, ved at konvertere resultatet til den rigtige type tal fra starten af.
Det gør man ved at pakke input()
ind i int()
- altså int(input())
Variablen antal kunne være lavet på følgende måde:
>>> antal=int(input("Hvor mange pizzaer vil du købe: "))
Hvor mange pizzaer vil du købe: 10
>>> antal*70
700
Skal man være smart skal lave din input - kode rigtigt fra starten af. Du skal overveje følgende 3 ting.
var=input("indsæt tekst her: ")
int()
var=int(input("indsæt tekst her: "))
float()
float(var=input("indsæt tekst her: "))
Vi kan også udskrive variablerne. Det gøres ved at bruge det man kalder fancy print:
>>> fornavn="Thomas"
>>> alder=50
>>> print (f"Hej. Jeg hedder {fornavn}. Jeg er {alder} år gammel")
Hej. Jeg hedder Thomas. Jeg er 50 år gammel
Lad os kigge på det der står inde i print funktionen:
f"Hej. Jeg hedder {fornavn}. Jeg er {alder} år gammel"
f aktiverer fancy print. I hver af de krøllede parenteser har jeg indsat et af variabelnavnene, som så bliver skrevet ud af print-funktionen.
Det kan også lade sig gøre at styre hvordan output bliver vist. Det kan gøres på to måder:
Her er der 3 vi vil komme til at anvende:
\t
\n
\r
Et eksempel
print("\nHejsa\n\n\tDenne tekst er formateret\n\nLet ... ikke;)")
Det der står i linien er:
>>> print("\nHejsa\n\n\tDenne tekst er formateret\n\nLet ... ikke;)")
Hejsa
Denne tekst er formateret
Let ... ikke;)
Hvis du laver trippel anførselsteng først og til sidst, så styrer du designet ved hjælp af at lave mellemrum og trykke Enter:
>>> print("""
Hejsa
Denne tekst er formateret
Let ... ikke
""")
Denne tekst vil blive udskrevet på følgende måde:
Hejsa
Denne tekst er formateret
Let ... ikke
Du kan komme ud for at du skal bruge tegnene \ , ' , eller " i dit tekst. For at de bliver skrevet ud som almindelige tegn skal de "escapes".
Det gøres på følgende måde:
\\
>>> print("Sådan laver du et \\ (backslash)")
Sådan laver du et \ (backslash)
\'
>>> print("Sådan laver du et \' (anførselstegn)")
Sådan laver du et ' (anførselstegn)
\"
>>> print("Sådan laver du et \" (citationstegn)")
Sådan laver du et " (citationstegn)