Variabler

Variabler

Noget af det spændende ved at gå i gang med programmering er, når vi opdager hvad en variabel kan gøre for os. Jeg forestiller mig ofte en variabel som en flyttekasse, hvor jeg kan lægge en ting ned i.

Inden for programmering kan man fx lægge et tal ind i en variabel. Variablen bliver dermed det samme som tallet. Her et eksempler på variabler, der alle indeholder tal.

x = 5

y = 10

En variabel kan derfor også udregne regnestykker med andre variabler indsat.

z = x + y

Her bliver z = 15.

Lad så prøve at udregne:

z + y = 25

z er altså additionen af x og y, dvs 5 + 10 = 15. Når z adderes med y som er 10, får vi derfor 25.

En variabel er især smart at bruge, hvis man arbejder med store tal.

Variabler kan også indeholde tegn og bogstaver.

Tegn, bogstaver og tal kan tilhøre en string. fx:

x = “#&! hejsa 222”

Men husk, at den ikke udregner en string, men kun sætter strings sammen med hinanden. Fx.

x = “2” + “7” vil blive 27 og altså ikke 9.

# Variabler

# Variabler gemmer dine data som fx:
# x = 10
# y = 5
# z = x + y hvor z fårtildelt 25. De andre variabler ændre sig ikke

x = 10
y = 5
print(x) # <- printer x i shell
print(y) # <- printer y i shell

# lad os addere x + y og tildele z resultatet
z = x + y
print(z)

#floats
i = 3833029272.33
print(i)
j = 37372.111
print(j)
k = -66362.00
print(k)

# Prøv nu at tildele a, b, c, d, e og f forskellige værdier
# a =
# b = 
# c = 
# d =
# e =
# f =

# prøv bagefter, at udregne:
# a + f
# c + d * f
# (c - d) * f
# f - b

# strings = bogstaver og tegn
# variabler kan også sagtens gemme bogstaver og tegn
mit_navn = "atle!" # <- Husk gåseøjne (shift og 2)
print(mit_navn)

# skriv dit navn
# mit_navn =

# Men hvad sker der, hvis vi udregner et tal som string. Fx x = "2" + "7"
udregn = "2" + "7"
print(udregn) # <- Vi får altså 27. Python ser med ikke "2" + "7" som andet end to tegn, der skal sættes sammen.

Flere variabler på samme linje

Når du er blevet helt fortrolig med variabler, kan du også prøve at tildele flere variabler på den samme linje. Se:

x, y, z = 1, 4, 7

I ovenstående eksempel tildeles x = 1, y = 4 og z = 7.

Personligt foretrækker jeg denne metode med ;(semikolon):

a = 6; b = 30; c = 99

I ovenstående eksempel tildeles a = 6, b = 30 og c = 99.

Lad os nu prøve at sætte variabler sammen, så de giver mening.

x = "Dette er en variabel"
print(x)
y = "og det samme er denne :-)"
print(y)

Vi kan sætte variabler sammen på forskellige måder. De mest benyttede her i starten vil være med enten +(plus) eller ,(komma).

print(x + " " + y)
print(x, y)

Begge vil printe: Dette er en variabel og det samme er denne 🙂

I det første eksempel laver vi luft med + ” ” +. Mens vi i det andet eksempel laver luft vha kommaet.

navn = "atle"
postnr = "2100"
print("Hej" + " " + navn + "." + " " + "Du bor i postnr:" + " " + postnr)
print("Hej", navn + ".", "Du bor i postnr:", postnr)

Begge printer: Hej atle. Du bor i postnr: 2100

Manipulation af en string

Men hov! I eksemplet står mit navn med småt. Vha. Pythons funktioner kan man let ændre dette med en title() funktion.

navn2 = "atle".title() # <- Indsætter versal i det første bogstav
print(navn2)

Her læser Python at den skal bruge title()-funktionen og altså starte med et versal. atle bliver til Atle.

Du kan også bruge en upper()-funktion, som indsætter versaler ved hvert bogstav.

navn3 = "atle".upper()

Eller lower() funktionen, som indsætter små bogstaver ved hvert.

navn4 = "ATLE".lower()

Tal og bogstaver i samme string

Jf nyeste regler for standard af indsættelse af tal i Python, vil jeg her indføre de metoder, vi bruger. Måske har du set nogle bruge %s %r %d %f ved indførsel af tal i en string. Man kalder også dette for string-formating. Fx:

tal = 5
min_string = “Hej”
forkert = “%s dit favorittal er %d” % (min_string, tal)
print(forkert)

Så selvom den printer, Hej dit favorittal er 5, og faktisk indsætter tallet 5, er det forkert at gøre. Der er tale om en gammeldags praksis, som blev brugt i Python 2 op til Python 3.2.

I stedet så brug {} som string formating. Der findes flere metoder. Fx:

format1 = "{} dit favorittal er {}".format(min_string, tal)

Denne tager først variablen min_string og indsætter som den første, og derefter variablen tal. Vi får:

Hej dit favorittal er 5

Men man kan også bytte rundt på dem:

format2 = “{1} er dit favorittal, og dit navn er er {0}”.format(min_string, tal)

Vi får:

5 er dit favorittal, og dit navn er er Hej

f-string formatting – den bedste praksis.

format3 = f"{min_string} dit favorittal er {tal}"

Ovenstående kode giver os:

Hej dit favorittal er 5

Du kan også lave regnestykker:

tal2 = 2
tal3 = 3
summen = f"{tal2 + tal3}" # giver 5 og ikke 23
# Strings
print("Hello, World")

# string med forskellige tegn, tal og bogstaver
print("#!% bogStaVeR 123!")

# String som variablen mit_navn
mit_navn = "Hej, mit navn er Atle"
print(mit_navn)

# husk at en string ikke udregner tal. Python ser ikke talene men kun 
# gåseøjnene, der fortæller den, at der er tale om en string
print("2 + 7") # <- Bliver altså 2 + 7 og ikke 9.
print("2" + "7") # <- Bliver 27
print(2 + 7) # <- bliver 9

# Lad os lave nogle flere variabler
x = "Dette er en variabel"
print(x)
y = "og det samme er denne :-)"
print(y)
# Sammensætning af variabler
# Første eksempel
print(x + " " + y) # <- her laver vi luft med + " " +
# Andet eksempel
print(x, y) # <- her gør kommaet det for os

# Her sætter vi en string sammen med en anden string
navn = "atle"
postnr = "2100"
print("Hej" +  " " + navn + "." + " " + "Du bor i postnr:" + " " + postnr)
print("Hej", navn + ".", "Du bor i postnr:", postnr)

# Manipulation af string
navn2 = "atle".title() # <- Indsætter versal i det første bogstav
print(navn2)

navn3 = "atle".upper()
print(navn3)

navn4 = "ATLE".lower()
print(navn4)

# Tal og tegn indsat i strings
tal = 5
min_string = "Hej"
forkert = "%s dit favorittal er %d" % (min_string, tal) # Brug IKKE procent
print(forkert)

format1 = "{} dit favorittal er {}".format(min_string, tal)
print(format1)

format2 = "{1} er dit favorittal, og dit navn er er {0}".format(min_string, tal)
print(format2)


# f-formatting. Bedste praksis.
format3 = f"{min_string} dit favorittal er {tal}"
print(format3)

# Nu kan du også regne strenge
tal2 = 2
tal3 = 3
summen = f"{tal2 + tal3}"
print(summen)

# Øv dig en masse gange med f-formattering.
x = 3 # 3

del x # sletter variablen x

Variabel som liste

hoejde = 29 # integer
laengde 50.35 # float
bygning = "arkitektur" # string
samlet = [bygning, hoejde, laengde]
samlet # ["arkitektur", 29, 50,35]

Input

Men et input, tillader du brugeren af programmet at kommunikere, så programmet kan komme med et output, baseret på brugerens input.

# Input
# Input lader brugeren skrive i funktionen input()

# input("Hvad er dit navn:")

print("Hej, hvad hedder du?")
mit_navn = input()
print("Hej", mit_navn)

print("Dit post.nr:")
postnr = input()
print(f"Du bor i {postnr}")

# lommeregner
print("lommeregneren".upper())
tal1 = int(input("Tal 1"))
tal2 = int(input("tal 2"))
udregn = tal1 + tal2
print(udregn)

Global Variabel

Nedenstående eksempler skal du ikke læse, hvis du ikke kender til funktioner endnu.

x = "Hej Pythons!"

# Global x = "Hej Pythons!"
def min_funktion():
    global x
    print(x)

min_funktion()

# Du skal huske at indsætte global foran x, da Python ellers ikke forstå kommandoen
def min_funktion_fejl():
    print(x)

Der findes også non locals. En god ressource til at finde mere info herom er på Programiz.