Vad är datatyper?
Teori expand_more
1. Datatyper
En variabel innehåller ett värde och det värdet kan vara av olika sort, t.ex. heltal eller decimaltal. De olika sorterna kallas datatyper. När variabler deklareras genom en tilldelning får de en datatyp. Det finns flera olika datatyper i Python.
# Exempel - Använd type() för att ta reda på vilken datatyp en variabel har
a = 5 # Heltal
datatyp = type(a)
print(datatyp)
ger utskriften
<class 'int'>
Datatypen int står för integer, heltal på svenska.
b = 3.7 # Flyttal, decimaltal. Observera att decimalpunkt används
datatyp = type(b)
print(datatyp)
ger utskriften
<class 'float'>
Datatypen float står för floating point, flyttal eller decimaltal på svenska.
c = 'asdj2-@sk9' # Sträng (en text som kan innehålla noll till flera tecken)
datatyp = type(c)
print(datatyp)
ger utskriften
<class 'str'>
Datatypen str står för string, textsträng eller bara sträng på svenska. En sträng skrivs i koden mellan enkla eller dubbla citattecken.
d = '17' # Sträng, värdet står mellan enkla citattecken
datatyp = type(d)
print(datatyp)
ger utskriften
<class 'str'>
Datatypen är en sträng för att värdet står mellan enkla citattecken.
e = True # Booleskt värde, kan vara True eller False
datatyp = type(e)
print(datatyp)
ger utskriften
<class 'bool'>
Datatypen bool står för boolean, boolesk eller bara bool på svenska. Datatypen bool används för logiska värden, dvs värden som antingen är sanna eller falska.
# Exempel - En variabel kan byta datatyp
a = 5 # Heltal
datatyp = type(a)
print(datatyp)
a = 4.2 # Variabeln tilldelas ett flyttal
datatyp = type(a)
print(datatyp)
ger utskriften
<class 'int'>
<class 'float'>
1.1 Omvandla mellan datatyper
De datatyper som finns är: heltal, flyttal, sträng, bool. Ibland måste man omvandla mellan datatyperna.
# Exempel - Felaktig datatyp
e = '12'
f = e + 34
print(f)
ger utskriften
File "main.py", line 2, in <module>
f = e + 34
TypeError: can only concatenate str (not "int") to str
Det går inte att addera mellan värden av datatyperna sträng och heltal, dvs strängen e och heltalet 34.
# Exempel - Omvandla datatypen till heltal
e = '12'
e = int(e) # Strängen e omvandlas till ett heltal och tilldelas variabeln e
f = e + 34
print(f)
ger utskriften
46
Nu sker additionen mellan två heltal, dvs mellan heltalen e och 34.
# Exempel - Använd input() för indata från tangentbordet.
# Från input får man alltid tillbaka en sträng.
tal = input('Ange ett tal mellan 1 till 100? ')
f = tal + 34
ger utskriften (när man svarar med värdet 33 och tryck enter)
Ange ett tal mellan 1 till 100? 33File "main.py", line 2, in <module>
f = tal + 34
TypeError: can only concatenate str (not "int") to str
Från input får man alltid tillbaka en sträng, så variabel tilldelas en sträng, i exemplet ovan strängen ’33’. Som vi sett tidigare går det inte att addera mellan värden av datatyperna sträng och heltal, dvs variabeln tal som har datatypen sträng och heltalet 34.
# Exempel - Omvandla datatypen för variabeln tal från sträng till heltal,# så att det kan adderas med ett annat heltal
tal = input('Ange ett tal mellan 1 till 100? ')
tal = int(tal) # Omvandla variabeln tal från datatypen sträng till heltal
f = tal + 12
print(f)
ger utskriften
Ange ett tal mellan 1 till 100? 33
45
Samma som föregående exempel i förkortad form, omvandlar variabeln tal från datatypen sträng till heltal direkt i beräkningen.
# Exempel - Omvandlar variabeln tal från datatypen sträng till heltal
tal = input('Ange ett tal mellan 1 till 100? ')
f = int(tal) + 34 # Omvandla och addera på samma rad
print(f)
ger utskriften
Ange ett tal mellan 1 till 100? 33
67
Samma som föregående exempel där typomvandlingen sker direkt när input() anropas.
# Exempel - Omvandlar variabeln tal från datatypen sträng till heltal
# Omvandla till heltal direkt vid input
tal = int(input('Ange ett tal mellan 1 till 100? '))
f = tal + 34
print(f)
ger utskriften
Ange ett tal mellan 1 till 100? 22
56
Det finns ett antal inbyggda satser för omvandling mellan datatyper.
- int() omvandlar ett värde till ett heltal.
- float() omvandlar ett värde till ett flyttal.
- str() omvandlar ett värde till en sträng.
- bool() omvandlar ett värde till en bool.
1.2 Film om datatyper (11:12)
Övningar expand_more
- Vilka olika datatyper finns i Python?
- Förklara hur och när en variabel får sin datatyp?
- Vilken funktion används för att ta reda på vilken datatyp en variabel har?
- Ibland måste datatypen hos variabler omvandlas, dvs bytas från en datatyp till en annan. Ange en anledning till när datatypen måste omvandlas?
- Vilka funktioner finns för att omvandla datatyper?
Begrepp expand_more
Datatyp: En variabel kan innehålla värden av olika sort, t.ex. heltal, decimaltal, sträng eller bool.
Flyttal: Decimaltal
Bool: Kan vara True eller False
Sträng: Ett antal olika tecken, som skrivs mellan enkla eller dubbla citattecken.
Textsträng: Se sträng.
Inlämningsuppgift expand_more
Ingen inlämningsuppgift
