>

Print og input

Hvis man vil lave matematikprogrammer får man brug for at kunne lave brugerinputs og udskrive resulater. Det gøres henholdsvise med funktionerne print() og input(). Det man skal være opmærksom på er, at alle input bliver tolket som tekststrenge. Den skal altså konverteres med det samme. Det gøres ved at pakke funktionerne ind i hinanden:

print()

Funktionen gør nøjagtigt det som den siger. Den printer indholdet af parantesen. Indholdet i parantesen skal være være enten en værdi (angives med talværdier) eller en tekststreng

>>> a=1
>>> print(a)
1
>>> print(a*2)
2
>>> print("Dette er en sætning")
Dette er en sætning

Pladsholdere

Man kan indsætte variabler i en teksstreng ved hjælp af pladsholdere. Se herunder:

>>> navn="Thomas"
>>> print("Variablens navn er {0}".format(navn))
Variablens navn er Thomas

Pladsholderne angives ved hjælp af {0}, {1},{2} ... og indsættes ved hjælp af at sætte .format() på tekststrengen. I parantesen angives variablerne i rækkefølge adskilt af ,.

input()

For at få brugerinput anvendes funktionen input(). Funktionen udskriver tekststrengen inde i parantensen, og venter på brugerens input. Som standard læses input som en tekststreng. Hvis input er en talværdi konverteres den til den taltype man ønsker ved at pakke input funktionen ind i funktionen for taltypen f.eks:

int(input(*tekststreng*)) <-- Husk to paranteser til sidst

Grunden til at jeg fremhæver det med de to paranteser til slut er, at det er en meget typisk fejl, at man glemmer at afslutte alle paranteserne.

Et eksempel

I dette eksempel er brugerens input farvet blå for at tydeliggøre det som sker.

>>> navn=input("Skriv dit navn: ")
Skriv dit navn: Thomas
>>> tal=int(input("Skriv et tal: ")) <-- Husk to paranteser til sidst
Skriv et tal: 6
>>> print("Det dobbelte af {0} er {1}".format(tal,tal*2)) <-- Husk to paranteser til sidst
Det dobbelte af 6 er 12

Hvad er det vi gør:

  1. navn=input("Skriv dit navn: ")
  2. Vi opretter variablen navn og indhenter navnet (en tekststreng) ved hjælp af input()

  3. tal=int(input("Skriv et tal: "))
  4. Vi opretter variablen tal og indhenter tallet (en tekststreng) ved hjælp af input(). Men vi konverterer tekststrengen til et tal med det samme ved at pakke hele funktionen ind i int()

  5. print("Det dobbelte af {0} er {1}".format(tal,tal*2))
  6. Vi printer resultatet ved hjælp af print(), og indsætter variablerne ved hjælp af pladsholdere

Hvis vi f.eks. ville udregne en brøk kan vi få brugeren til først at indtaste tælleren og derefter nævneren:

>>> tæller=int(input("Indtast tæller: "))
Indtast tæller: 3
>>> nævner=int(input("Indtast nævner: "))
Indtast nævner: 4
>>> tæller/nævner
0.75
>>> type(_)
<class 'float'>

Læg mærke til 2 ting:

  • Divisionsstykket konvertere de to int tal til float
  • Man kan kalde det sidste output ved at anvende _ (underscore)

Opgave

Lav et program hvor du sætter variablerne med input. Du skal finde ud af:

  1. Fornavn
  2. Alder
  3. Mobilnr

Lav et output der siger

Jeg hedder *fornavn*, og er *alder* år gammel. Mit mobilnr er: *mobilnr*

Overvej om alder og mobilnr skal være tekststrenge eller værdier. Begrund dine valg.