Kom i gang

Hvis du ikke har gjort det enda, må du installere Python og Visual Studio Code før du fortsetter.



Hello World

Det er tradisjon for at det første programmet man skriver når man lærer seg et nytt programmeringsspråk er et program som skriver ut ordene “Hello World” til skjermen.

print("Hello World")

Last ned filen hello.py, åpne den i VSCode og kjør den. Se at det virker.

Tre måter å kjøre Python
Kommentarer

Kommentarer er tekst i programmet vårt som blir fullstendig ignorert av Python. Alt som kommer etter en hashtag (#) på en linje blir ignorert, og er kommentarer.

print("Hello World") # Her er en kommentar
# print("På denne linjen skjer det ingenting")

print("Her er # i en streng.") # Hashtag mellom "hermetegn" telles ikke
Utskrift til terminalen

Print-funksjonen skriver ut verdier til terminalen.

# Print-funksjonen kan skrive ut forskellige typer verdier
print("Foo")  # streng/tekst
print(42)     # nummer
print(True)   # boolske verdier

# Print-funksjonen kan skrive ut flere ting på én gang
print("Foo", "Bar")

# Bruk end="" for å avslutte med noe annet enn et linjeskift
print("Foo", end="")
print("Bar")
Strenger

En streng er en verdi som representerer tekst. En streng består av bokstaver, tallsymboler, mellomrom, linjeskift og andre tegn.

print("Strenger skrives mellom hermetegn.")
print('Man kan også bruke apostrof.')
print(Hvis du ikke har hermetegn er det ikke en streng, og det krasjer)
# En streng kan lagres i en variabel.
foo = "bar"
print("foo") # Skriver ut "foo"
print(foo) # Skriver ut "bar"
# En streng kan inneholde linjeskift (\n)
print("Denne strengen\ninneholder to\nlinjeskift")

# En streng kan inneholde hermetegn (")
print("Her \"er\" et hermetegn")
print('Her "er" et hermetegn') # bedre: bruk apostrofer

# En streng kan inneholde bakstrek (\)
print("C:\\mappe\\script.py")
# len() finner lengden til en streng
x = "foo"
print(len(x)) # 3
print(len("foobar")) # 6
print(len("foo bar")) # 7
print(len("foo\nbar")) # 7 (linjeskift \n telles kun som 1)
print(len(" foobar  ")) # 9 (inkluderer mellomrom)
# En streng kan være tom
x = ""
print(len(x)) # 0
print(x) # printer ingenting på denne linjen
print("---")
# Strenger slås sammen med pluss (+)
print("foo" + "bar") # foobar

a = "Hei"
b = "der"
print(a + " " + b) # Hei der
# Strenger repeteres flere ganger med gangesymbol (*)
print("*" * 3) # ***

s = "bar"
print(2 * s) # barbar

Det er mulig å kombinere tekst og andre verdier med f-strenger. Legg merke til f før hermetegnet.

# Med en f-streng kan vi inkludere variabler i strengen
number_of_students = 800
course_id = "INF100"
print(f"Vi ønsker {number_of_students} studenter velkommen til {course_id}")

# Uten f'en får vi en logisk feil
print("Vi ønsker {number_of_students} studenter velkommen til {course_id}")
print()

# f-strenger kan også brukes for å lage verdier som lagres som en variabel
message = "Jeg lengter hjem"
log_message = f"Mottatt melding: {message}"
print(log_message) # "Mottatt melding: Jeg lengter hjem"

# f-strenger er ikke magiske
message = "Jeg er fornøyd"
print(log_message) # fremdeles "Mottatt melding: Jeg lengter hjem"
Input fra terminalen

Merk: å hente input fra terminalen gir mest mening når man kjører python som en fil. Ved å kjøre eksemplene under i Brython (på denne nettsiden), vil vi ikke få se noe output fra programmet før hele kjøringen er ferdig, noe som ikke alltid gir mening. I Brython -kjøringene på denne nettsiden vil også den korte timeout’en gjøre at vi ikke alltid har tid til å skrive inn det vi ønsker.

# Når input er en tekst
print("Skriv ditt navn")
name = input()
print(f"Hei, {name}!")
# Når input er et tall
print("Skriv et tall")
x = input()
half_x = x / 2 # Krasjer!
print(f"Halvparten av {x} er {half_x}")
# Når input er et tall
print("Skriv et tall:")
user_input = input()
x = int(user_input)   # Eller bruk float(user_input) for desimaltall
half_x = x / 2 # Bedre!
print(f"Halvparten av {x} er {half_x}")
Syntaksfeil, krasj og logiske feil
print("oj!) # Syntaksfeil! (mangler hermetegn etter !)

# Gir output:
#   SyntaxError: EOL while scanning string literal
print(1/0) # Krasj! (å dele på 0 er umulig)

# Gir output:
#   ZeroDivisionError: integer division or modulo by zero
x = 2
y = 3
z = x + y
print(f"{x} + {z} = {y}") # Logisk feil, vi har byttet z og y

# Gir output:
#   2 + 5 = 3